From: Rémi Bernon rbernon@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;