- Move up the chain to convert F10 to system key mode before going into the queue, so when in menu tracking, the message can be removed and processed, see bug 1009.

svn path=/trunk/; revision=51571
This commit is contained in:
James Tabor 2011-05-04 01:31:47 +00:00
parent fd8c53e19c
commit 40222f1c75
2 changed files with 6 additions and 5 deletions

View file

@ -482,7 +482,7 @@ static VOID APIENTRY
co_IntKeyboardSendAltKeyMsg()
{
DPRINT1("co_IntKeyboardSendAltKeyMsg\n");
// co_MsqPostKeyboardMessage(WM_SYSCOMMAND,SC_KEYMENU,0); This sends everything into a msg loop!
//co_MsqPostKeyboardMessage(WM_SYSCOMMAND,SC_KEYMENU,0); // This sends everything into a msg loop!
}
static VOID APIENTRY
@ -860,6 +860,11 @@ KeyboardThreadMain(PVOID StartContext)
/* There is no focused window to receive a keyboard message */
continue;
}
if ( msg.wParam == VK_F10 ) // Bypass this key before it is in the queue.
{
if (msg.message == WM_KEYUP) msg.message = WM_SYSKEYUP;
if (msg.message == WM_KEYDOWN) msg.message = WM_SYSKEYDOWN;
}
/*
* Post a keyboard message.
*/

View file

@ -1340,10 +1340,6 @@ BOOL co_IntProcessKeyboardMessage(MSG* Msg, BOOL* RemoveMessages)
case VK_LMENU: case VK_RMENU:
Msg->wParam = VK_MENU;
break;
case VK_F10:
if (Msg->message == WM_KEYUP) Msg->message = WM_SYSKEYUP;
if (Msg->message == WM_KEYDOWN) Msg->message = WM_SYSKEYDOWN;
break;
}
}