winex11: Send WM_SYSKEYDOWN and WM_SYSKEYUP when the 'F10' key is used.
authorErich Hoover <ehoover@mines.edu>
Tue, 13 Oct 2009 00:51:19 +0000 (18:51 -0600)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 14 Oct 2009 10:59:39 +0000 (12:59 +0200)
dlls/winex11.drv/keyboard.c

index 3da7183..1964d5c 100644 (file)
@@ -1197,9 +1197,10 @@ void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD event_flags, DWORD
     if (event_flags & KEYEVENTF_KEYUP)
     {
         message = WM_KEYUP;
-        if ((key_state_table[VK_MENU] & 0x80) &&
-            ((wVkStripped == VK_MENU) || (wVkStripped == VK_CONTROL)
-             || !(key_state_table[VK_CONTROL] & 0x80)))
+        if (((key_state_table[VK_MENU] & 0x80) &&
+             ((wVkStripped == VK_MENU) || (wVkStripped == VK_CONTROL)
+              || !(key_state_table[VK_CONTROL] & 0x80)))
+            || (wVkStripped == VK_F10))
         {
             if( TrackSysKey == VK_MENU || /* <ALT>-down/<ALT>-up sequence */
                 (wVkStripped != VK_MENU)) /* <ALT>-down...<something else>-up */
@@ -1211,8 +1212,9 @@ void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD event_flags, DWORD
     else
     {
         message = WM_KEYDOWN;
-        if ((key_state_table[VK_MENU] & 0x80 || wVkStripped == VK_MENU) &&
-            !(key_state_table[VK_CONTROL] & 0x80 || wVkStripped == VK_CONTROL))
+        if (((key_state_table[VK_MENU] & 0x80 || wVkStripped == VK_MENU) &&
+             !(key_state_table[VK_CONTROL] & 0x80 || wVkStripped == VK_CONTROL)) ||
+            (wVkStripped == VK_F10))
         {
             message = WM_SYSKEYDOWN;
             TrackSysKey = wVkStripped;