From 9d459b6a53fbca97f5a549f94a52e5a00fb6f1f5 Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 12 Feb 2020 09:01:00 +1100 Subject: Bug [#2156]. Process IME messages that were broken by [983d35]. Move WM_INPUTLANGCHANGE[REQUEST] into IMEMessage. --- win32/ScintillaWin.cxx | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'win32') diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index ef933afdc..0a3c82240 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -1580,6 +1580,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(); @@ -1594,7 +1600,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 { @@ -1602,7 +1608,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); @@ -1905,11 +1911,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. @@ -1938,6 +1939,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: -- cgit v1.2.3