aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2020-02-12 09:01:00 +1100
committerNeil <nyamatongwe@gmail.com>2020-02-12 09:01:00 +1100
commit4217a53245325b0f8d925dc1ae98129133b39157 (patch)
tree19644f4751c5d24796b9975c879c446abd584508
parent71368fa9876c672a66cadea6db89a2a6acb44dab (diff)
downloadscintilla-mirror-4217a53245325b0f8d925dc1ae98129133b39157.tar.gz
Backport: Bug [#2156]. Process IME messages that were broken by [983d35].
Move WM_INPUTLANGCHANGE[REQUEST] into IMEMessage. Backport of changeset 7982:5205bdd9c737.
-rw-r--r--win32/ScintillaWin.cxx26
1 files changed, 19 insertions, 7 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index d543ca940..d2b0568d2 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -1570,6 +1570,12 @@ sptr_t ScintillaWin::FocusMessage(unsigned int iMessage, uptr_t wParam, sptr_t)
sptr_t ScintillaWin::IMEMessage(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
switch (iMessage) {
+ case WM_INPUTLANGCHANGE:
+ return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
+
+ case WM_INPUTLANGCHANGEREQUEST:
+ return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
+
case WM_IME_KEYDOWN: {
if (wParam == VK_HANJA) {
ToggleHanja();
@@ -1584,7 +1590,7 @@ sptr_t ScintillaWin::IMEMessage(unsigned int iMessage, uptr_t wParam, sptr_t lPa
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
}
- case WM_IME_STARTCOMPOSITION: // dbcs
+ case WM_IME_STARTCOMPOSITION:
if (KoreanIME() || imeInteraction == imeInline) {
return 0;
} else {
@@ -1592,7 +1598,7 @@ sptr_t ScintillaWin::IMEMessage(unsigned int iMessage, uptr_t wParam, sptr_t lPa
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
}
- case WM_IME_ENDCOMPOSITION: // dbcs
+ case WM_IME_ENDCOMPOSITION:
ImeEndComposition();
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
@@ -1882,11 +1888,6 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam
case WM_CONTEXTMENU:
return ShowContextMenu(iMessage, wParam, lParam);
- case WM_INPUTLANGCHANGE:
- return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
- case WM_INPUTLANGCHANGEREQUEST:
- return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
-
case WM_ERASEBKGND:
return 1; // Avoid any background erasure as whole window painted.
@@ -1915,6 +1916,17 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam
case WM_GETTEXT:
return GetText(wParam, lParam);
+ case WM_INPUTLANGCHANGE:
+ case WM_INPUTLANGCHANGEREQUEST:
+ case WM_IME_KEYDOWN:
+ case WM_IME_REQUEST:
+ case WM_IME_STARTCOMPOSITION:
+ case WM_IME_ENDCOMPOSITION:
+ case WM_IME_COMPOSITION:
+ case WM_IME_SETCONTEXT:
+ case WM_IME_NOTIFY:
+ return IMEMessage(iMessage, wParam, lParam);
+
case EM_LINEFROMCHAR:
case EM_EXLINEFROMCHAR:
case EM_GETSEL: