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