diff options
author | crupest <crupest@outlook.com> | 2020-04-05 22:42:17 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-04-05 22:42:17 +0800 |
commit | 37ac119b98504ba859dfc789e357718264446bb9 (patch) | |
tree | 6409f333d66fb10f03e65cea03a45d609dc16785 /src/win/native/window.cpp | |
parent | abcaa16c897678fa3fa4cda3f23660e4ca46b841 (diff) | |
download | cru-37ac119b98504ba859dfc789e357718264446bb9.tar.gz cru-37ac119b98504ba859dfc789e357718264446bb9.tar.bz2 cru-37ac119b98504ba859dfc789e357718264446bb9.zip |
...
Diffstat (limited to 'src/win/native/window.cpp')
-rw-r--r-- | src/win/native/window.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/win/native/window.cpp b/src/win/native/window.cpp index a0ac2f6f..542aabd2 100644 --- a/src/win/native/window.cpp +++ b/src/win/native/window.cpp @@ -14,6 +14,7 @@ #include "window_d2d_painter.hpp" #include "window_manager.hpp" +#include <imm.h> #include <windowsx.h> namespace cru::platform::native::win { @@ -308,6 +309,16 @@ bool WinNativeWindow::HandleNativeWindowMessage(HWND hwnd, UINT msg, OnDestroyInternal(); *result = 0; return true; + case WM_IME_SETCONTEXT: + l_param &= ~ISC_SHOWUICOMPOSITIONWINDOW; + *result = ::DefWindowProcW(hwnd, msg, w_param, l_param); + return true; + // We must block these message from DefWindowProc or it will create + // an ugly composition window. + case WM_IME_STARTCOMPOSITION: + case WM_IME_COMPOSITION: + *result = 0; + return true; default: return false; } @@ -409,10 +420,14 @@ void WinNativeWindow::OnCharInternal(wchar_t c) { return; } else if (platform::win::IsSurrogatePairTrailing(c)) { wchar_t s[3] = {last_wm_char_event_wparam_, c, 0}; - char_event_.Raise(platform::win::ToUtf8String(s)); + auto str = platform::win::ToUtf8String(s); + char_event_.Raise(str); + log::Debug("WinNativeWindow: char event, charactor is {}", str); } else { wchar_t s[2] = {c, 0}; - char_event_.Raise(platform::win::ToUtf8String(s)); + auto str = platform::win::ToUtf8String(s); + char_event_.Raise(str); + log::Debug("WinNativeWindow: char event, charactor is {}", str); } } |