Module: wine Branch: master Commit: c7b1b4c68bdcabe76a3de5672b33d24a6cbabe26 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c7b1b4c68bdcabe76a3de5672b...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Aug 9 13:14:20 2007 +0200
user32: WM_IME_CHAR should result in posted, not sent, WM_CHAR messages.
---
dlls/user32/defwnd.c | 17 ++++++----------- 1 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index 489f720..6f97880 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -812,20 +812,15 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam result = 1; /* success. FIXME: check text length */ break;
- /* for far east users (IMM32) - hidenori@a2.ctktv.ne.jp */ case WM_IME_CHAR: - { - CHAR chChar1 = (CHAR)( (wParam>>8) & 0xff ); - CHAR chChar2 = (CHAR)( wParam & 0xff ); - - if (chChar1) - SendMessageA( hwnd, WM_CHAR, (WPARAM)chChar1, lParam ); - SendMessageA( hwnd, WM_CHAR, (WPARAM)chChar2, lParam ); - } + if (HIBYTE(wParam)) PostMessageA( hwnd, WM_CHAR, HIBYTE(wParam), lParam ); + PostMessageA( hwnd, WM_CHAR, LOBYTE(wParam), lParam ); break; + case WM_IME_KEYDOWN: result = SendMessageA( hwnd, WM_KEYDOWN, wParam, lParam ); break; + case WM_IME_KEYUP: result = SendMessageA( hwnd, WM_KEYUP, wParam, lParam ); break; @@ -968,10 +963,10 @@ LRESULT WINAPI DefWindowProcW( result = 1; /* success. FIXME: check text length */ break;
- /* for far east users (IMM32) - hidenori@a2.ctktv.ne.jp */ case WM_IME_CHAR: - SendMessageW( hwnd, WM_CHAR, wParam, lParam ); + PostMessageW( hwnd, WM_CHAR, wParam, lParam ); break; + case WM_IME_SETCONTEXT: { HWND hwndIME;