ByeongSik Jeon : user32: Set the vkey value to VK_PROCESSKEY when IME process key.

Alexandre Julliard julliard at winehq.org
Mon Apr 28 08:01:32 CDT 2008


Module: wine
Branch: master
Commit: 936e8473dbea0790ecb64d8af843e87840a6b331
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=936e8473dbea0790ecb64d8af843e87840a6b331

Author: ByeongSik Jeon <bsjeon at hanmail.net>
Date:   Sat Apr 26 00:19:22 2008 +0900

user32: Set the vkey value to VK_PROCESSKEY when IME process key.

---

 dlls/user32/message.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 7f3407e..7f1b68b 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -36,6 +36,7 @@
 #include "dbt.h"
 #include "dde.h"
 #include "imm.h"
+#include "ddk/imm.h"
 #include "wine/unicode.h"
 #include "wine/server.h"
 #include "user_private.h"
@@ -1747,6 +1748,11 @@ static BOOL process_keyboard_message( MSG *msg, UINT hw_id, HWND hwnd_filter,
         return FALSE;
     }
     accept_hardware_message( hw_id, remove, 0 );
+
+    if ( msg->message == WM_KEYDOWN || msg->message == WM_KEYUP )
+        if ( ImmProcessKey(msg->hwnd, GetKeyboardLayout(0), msg->wParam, msg->lParam, 0) )
+            msg->wParam = VK_PROCESSKEY;
+
     return TRUE;
 }
 
@@ -2995,8 +3001,8 @@ BOOL WINAPI TranslateMessage( const MSG *msg )
     TRACE_(key)("Translating key %s (%04lx), scancode %02x\n",
                  SPY_GetVKeyName(msg->wParam), msg->wParam, LOBYTE(HIWORD(msg->lParam)));
 
-    if (ImmProcessKey(msg->hwnd, GetKeyboardLayout(0), msg->wParam, msg->lParam,0))
-        return TRUE;
+    if ( msg->wParam == VK_PROCESSKEY )
+        return ImmTranslateMessage(msg->hwnd, msg->message, msg->wParam, msg->lParam);
 
     GetKeyboardState( state );
     /* FIXME : should handle ToUnicode yielding 2 */




More information about the wine-cvs mailing list