Module: wine
Branch: master
Commit: 2aa54a90bd24f6aa422a2eb832a54d9afe585259
URL: https://gitlab.winehq.org/wine/wine/-/commit/2aa54a90bd24f6aa422a2eb832a54d…
Author: Zhiyi Zhang <zzhang(a)codeweavers.com>
Date: Fri Aug 12 11:32:54 2022 +0800
user32/edit: Handle IME composition result string only when EIMES_GETCOMPSTRATONCE is set.
If EIMES_GETCOMPSTRATONCE is not set, WM_IME_COMPOSITION with LPARAM set to GCS_RESULTSTR should be
passed to the default window procedure according to MSDN.
Fix some windows based on edit control not being able to input Chinese.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
---
dlls/user32/edit.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c
index 6593ee6dce2..49cf2751f0a 100644
--- a/dlls/user32/edit.c
+++ b/dlls/user32/edit.c
@@ -5198,6 +5198,12 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B
break;
case WM_IME_COMPOSITION:
+ if (lParam & GCS_RESULTSTR && !(es->ime_status & EIMES_GETCOMPSTRATONCE))
+ {
+ DefWindowProcT(hwnd, msg, wParam, lParam, unicode);
+ break;
+ }
+
EDIT_ImeComposition(hwnd, lParam, es);
break;