From: Rémi Bernon <rbernon(a)codeweavers.com> When EIMES_GETCOMPSTRATONCE is set we delegate WM_IME_COMPOSITION to the default window proc, which sends the corresponding WM_IME_CHAR messages. The WM_IME_CHAR messages were also delegated to the default window proc, and were translated to WM_CHAR messages, but these are posted and not sent, and are then processed asynchronously wrt the following WM_IME_* messages, and end up being handled out-of-order. This fixes the message ordering issue by processing WM_IME_CHAR messages directly. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53860 --- dlls/comctl32/edit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/comctl32/edit.c b/dlls/comctl32/edit.c index 883dd5d9145..2ad18cb401e 100644 --- a/dlls/comctl32/edit.c +++ b/dlls/comctl32/edit.c @@ -4854,6 +4854,7 @@ static LRESULT CALLBACK EDIT_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPAR break; case WM_CHAR: + case WM_IME_CHAR: { WCHAR charW = wParam; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2743