Accept WM_SYSCHAR message for processsing in TranslateAcceleratorW

Dmitry Timoshkov dmitry at baikal.ru
Thu Sep 16 05:54:57 CDT 2004


Hello,

this patch makes accelerator keys in my test MDI app (compiled with MSVC)
work under Wine. The problem is that Wine correctly generates WM_SYSKEY*
and WM_SYSCHAR messages when there is no focus window, but WM_SYSCHAR
is not considered by TranslateAcceleratorW as a valid input.

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    Accept WM_SYSCHAR message for processsing in TranslateAcceleratorW.

--- cvs/hq/wine/dlls/user/menu.c	2004-09-11 15:47:41.000000000 +0900
+++ wine/dlls/user/menu.c	2004-09-16 19:43:28.000000000 +0900
@@ -4527,7 +4527,7 @@ static BOOL translate_accelerator( HWND 
 
     if (wParam != key) return FALSE;
 
-    if (message == WM_CHAR)
+    if (message == WM_CHAR || message == WM_SYSCHAR)
     {
         if ( !(fVirt & FALT) && !(fVirt & FVIRTKEY) )
         {
@@ -4697,11 +4697,12 @@ INT WINAPI TranslateAcceleratorW( HWND h
         WARN_(accel)("invalid accel handle=%p\n", hAccel);
         return 0;
     }
-    if ((msg->message != WM_KEYDOWN &&
+    if ( msg->message != WM_KEYDOWN &&
          msg->message != WM_KEYUP &&
          msg->message != WM_SYSKEYDOWN &&
          msg->message != WM_SYSKEYUP &&
-         msg->message != WM_CHAR)) return 0;
+         msg->message != WM_SYSCHAR &&
+         msg->message != WM_CHAR ) return 0;
 
     TRACE_(accel)("TranslateAccelerators hAccel=%p, hWnd=%p,"
                   "msg->hwnd=%p, msg->message=%04x, wParam=%08x, lParam=%lx\n",






More information about the wine-patches mailing list