winex11: Send WM_SYSKEYDOWN and WM_SYSKEYUP when the 'F10' key is used.

This commit is contained in:
Erich Hoover 2009-10-12 18:51:19 -06:00 committed by Alexandre Julliard
parent b74c0cc2fe
commit 8c9a6e9f5c

View file

@ -1197,9 +1197,10 @@ void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD event_flags, DWORD
if (event_flags & KEYEVENTF_KEYUP) if (event_flags & KEYEVENTF_KEYUP)
{ {
message = WM_KEYUP; message = WM_KEYUP;
if ((key_state_table[VK_MENU] & 0x80) && if (((key_state_table[VK_MENU] & 0x80) &&
((wVkStripped == VK_MENU) || (wVkStripped == VK_CONTROL) ((wVkStripped == VK_MENU) || (wVkStripped == VK_CONTROL)
|| !(key_state_table[VK_CONTROL] & 0x80))) || !(key_state_table[VK_CONTROL] & 0x80)))
|| (wVkStripped == VK_F10))
{ {
if( TrackSysKey == VK_MENU || /* <ALT>-down/<ALT>-up sequence */ if( TrackSysKey == VK_MENU || /* <ALT>-down/<ALT>-up sequence */
(wVkStripped != VK_MENU)) /* <ALT>-down...<something else>-up */ (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 else
{ {
message = WM_KEYDOWN; message = WM_KEYDOWN;
if ((key_state_table[VK_MENU] & 0x80 || wVkStripped == VK_MENU) && if (((key_state_table[VK_MENU] & 0x80 || wVkStripped == VK_MENU) &&
!(key_state_table[VK_CONTROL] & 0x80 || wVkStripped == VK_CONTROL)) !(key_state_table[VK_CONTROL] & 0x80 || wVkStripped == VK_CONTROL)) ||
(wVkStripped == VK_F10))
{ {
message = WM_SYSKEYDOWN; message = WM_SYSKEYDOWN;
TrackSysKey = wVkStripped; TrackSysKey = wVkStripped;