Andrew Eikum : user32: Handle VK_PACKET messages in TranslateMessage.

Alexandre Julliard julliard at winehq.org
Wed Aug 19 11:31:42 CDT 2009


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Tue Aug 18 11:29:09 2009 -0500

user32: Handle VK_PACKET messages in TranslateMessage.

---

 dlls/user32/message.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index f4913e1..3f7a4cd 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -3015,11 +3015,21 @@ BOOL WINAPI TranslateMessage( const MSG *msg )
     if (msg->message < WM_KEYFIRST || msg->message > WM_KEYLAST) return FALSE;
     if (msg->message != WM_KEYDOWN && msg->message != WM_SYSKEYDOWN) return TRUE;
 
-    TRACE_(key)("Translating key %s (%04lx), scancode %02x\n",
-                 SPY_GetVKeyName(msg->wParam), msg->wParam, LOBYTE(HIWORD(msg->lParam)));
+    TRACE_(key)("Translating key %s (%04lx), scancode %04x\n",
+                SPY_GetVKeyName(msg->wParam), msg->wParam, HIWORD(msg->lParam));
 
-    if ( msg->wParam == VK_PROCESSKEY )
+    switch (msg->wParam)
+    {
+    case VK_PACKET:
+        message = (msg->message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR;
+        TRACE_(key)("PostMessageW(%p,%s,%04x,%08x)\n",
+                    msg->hwnd, SPY_GetMsgName(message, msg->hwnd), HIWORD(msg->lParam), LOWORD(msg->lParam));
+        PostMessageW( msg->hwnd, message, HIWORD(msg->lParam), LOWORD(msg->lParam));
+        return TRUE;
+
+    case 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