- Patch by Erich HooverSend: WM_SYSKEYDOWN and WM_SYSKEYUP when the 'F10' key is used. See wine bug 19383 and http://www.winehq.org/pipermail/wine-patches/2009-October/079871.html for details.
- Update key state for all hardware postings.

svn path=/trunk/; revision=51521
This commit is contained in:
James Tabor
2011-05-01 11:51:22 +00:00
parent 2aaa0b9e08
commit 0f43b7af51
2 changed files with 5 additions and 4 deletions
@@ -1297,9 +1297,10 @@ IntKeyboardInput(KEYBDINPUT *ki, BOOL Injected)
if (ki->dwFlags & KEYEVENTF_KEYUP)
{
Msg.message = WM_KEYUP;
if ((gQueueKeyStateTable[VK_MENU] & 0x80) &&
if (((gQueueKeyStateTable[VK_MENU] & 0x80) &&
((wVkStripped == VK_MENU) || (wVkStripped == VK_CONTROL)
|| !(gQueueKeyStateTable[VK_CONTROL] & 0x80)))
|| (wVkStripped == VK_F10))
{
if( TrackSysKey == VK_MENU || /* <ALT>-down/<ALT>-up sequence */
(wVkStripped != VK_MENU)) /* <ALT>-down...<something else>-up */
@@ -1311,8 +1312,9 @@ IntKeyboardInput(KEYBDINPUT *ki, BOOL Injected)
else
{
Msg.message = WM_KEYDOWN;
if ((gQueueKeyStateTable[VK_MENU] & 0x80 || wVkStripped == VK_MENU) &&
if (((gQueueKeyStateTable[VK_MENU] & 0x80 || wVkStripped == VK_MENU) &&
!(gQueueKeyStateTable[VK_CONTROL] & 0x80 || wVkStripped == VK_CONTROL))
|| (wVkStripped == VK_F10))
{
Msg.message = WM_SYSKEYDOWN;
TrackSysKey = wVkStripped;
@@ -1006,8 +1006,7 @@ MsqPostMessage(PUSER_MESSAGE_QUEUE MessageQueue, MSG* Msg, BOOLEAN HardwareMessa
InsertTailList(&MessageQueue->HardwareMessagesListHead,
&Message->ListEntry);
if (MessageBits & QS_KEY)
update_input_key_state( MessageQueue, Msg );
update_input_key_state( MessageQueue, Msg );
}
Message->QS_Flags = MessageBits;