mirror of
https://github.com/reactos/reactos.git
synced 2024-10-04 16:36:11 +00:00
[WIN32K]
- Keyboard state is update when msg is peeked from queue (not posted) and before virtual keys are simplified. Fixes 2 user32:input winetests. svn path=/trunk/; revision=54134
This commit is contained in:
parent
d4fd0cd125
commit
a7dfeac07a
|
@ -260,32 +260,32 @@ static VOID
|
|||
UpdateKeyStateFromMsg(PUSER_MESSAGE_QUEUE MessageQueue, MSG* msg)
|
||||
{
|
||||
UCHAR key;
|
||||
BOOL down = 0;
|
||||
BOOL down = FALSE;
|
||||
|
||||
TRACE("UpdateKeyStateFromMsg message:%d\n", msg->message);
|
||||
|
||||
switch (msg->message)
|
||||
{
|
||||
case WM_LBUTTONDOWN:
|
||||
down = 1;
|
||||
down = TRUE;
|
||||
/* fall through */
|
||||
case WM_LBUTTONUP:
|
||||
UpdateKeyState(MessageQueue, VK_LBUTTON, down);
|
||||
break;
|
||||
case WM_MBUTTONDOWN:
|
||||
down = 1;
|
||||
down = TRUE;
|
||||
/* fall through */
|
||||
case WM_MBUTTONUP:
|
||||
UpdateKeyState(MessageQueue, VK_MBUTTON, down);
|
||||
break;
|
||||
case WM_RBUTTONDOWN:
|
||||
down = 1;
|
||||
down = TRUE;
|
||||
/* fall through */
|
||||
case WM_RBUTTONUP:
|
||||
UpdateKeyState(MessageQueue, VK_RBUTTON, down);
|
||||
break;
|
||||
case WM_XBUTTONDOWN:
|
||||
down = 1;
|
||||
down = TRUE;
|
||||
/* fall through */
|
||||
case WM_XBUTTONUP:
|
||||
if (msg->wParam == XBUTTON1)
|
||||
|
@ -295,7 +295,7 @@ UpdateKeyStateFromMsg(PUSER_MESSAGE_QUEUE MessageQueue, MSG* msg)
|
|||
break;
|
||||
case WM_KEYDOWN:
|
||||
case WM_SYSKEYDOWN:
|
||||
down = 1;
|
||||
down = TRUE;
|
||||
/* fall through */
|
||||
case WM_KEYUP:
|
||||
case WM_SYSKEYUP:
|
||||
|
@ -1215,8 +1215,6 @@ MsqPostMessage(PUSER_MESSAGE_QUEUE MessageQueue, MSG* Msg, BOOLEAN HardwareMessa
|
|||
{
|
||||
InsertTailList(&MessageQueue->HardwareMessagesListHead,
|
||||
&Message->ListEntry);
|
||||
|
||||
UpdateKeyStateFromMsg( MessageQueue, Msg );
|
||||
}
|
||||
|
||||
Message->QS_Flags = MessageBits;
|
||||
|
@ -1720,11 +1718,11 @@ co_MsqPeekHardwareMessage(IN PUSER_MESSAGE_QUEUE MessageQueue,
|
|||
{
|
||||
msg = CurrentMessage->Msg;
|
||||
|
||||
UpdateKeyStateFromMsg(MessageQueue, &msg);
|
||||
AcceptMessage = co_IntProcessHardwareMessage(&msg, &Remove, MsgFilterLow, MsgFilterHigh);
|
||||
|
||||
if (Remove)
|
||||
{
|
||||
UpdateKeyStateFromMsg(MessageQueue, &msg);
|
||||
RemoveEntryList(&CurrentMessage->ListEntry);
|
||||
ClearMsgBitsMask(MessageQueue, CurrentMessage->QS_Flags);
|
||||
MsqDestroyMessage(CurrentMessage);
|
||||
|
@ -2190,7 +2188,7 @@ NtUserGetKeyState(INT key)
|
|||
{
|
||||
DWORD Ret;
|
||||
|
||||
UserEnterExclusive();
|
||||
UserEnterShared();
|
||||
|
||||
Ret = UserGetKeyState(key);
|
||||
|
||||
|
|
Loading…
Reference in a new issue