[Win32k]
authorJames Tabor <james.tabor@reactos.org>
Sat, 30 Apr 2011 22:17:55 +0000 (22:17 +0000)
committerJames Tabor <james.tabor@reactos.org>
Sat, 30 Apr 2011 22:17:55 +0000 (22:17 +0000)
- Update key state when key and hardware is set before the event set. This allows input.c to post and set key states.

svn path=/trunk/; revision=51512

reactos/subsystems/win32/win32k/ntuser/msgqueue.c

index e0210da..36aa74c 100644 (file)
@@ -466,7 +466,6 @@ co_MsqPostKeyboardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
          FocusMessageQueue->Desktop->pDeskInfo->LastInputWasKbd = TRUE;
 
          Msg.pt = gpsi->ptCursor;
-         update_input_key_state(FocusMessageQueue, &Msg);
          MsqPostMessage(FocusMessageQueue, &Msg, TRUE, QS_KEY);
    }
    else
@@ -1006,6 +1005,9 @@ MsqPostMessage(PUSER_MESSAGE_QUEUE MessageQueue, MSG* Msg, BOOLEAN HardwareMessa
    {
        InsertTailList(&MessageQueue->HardwareMessagesListHead,
                       &Message->ListEntry);
+
+       if (MessageBits & QS_KEY)
+          update_input_key_state( MessageQueue, Msg );
    }
 
    Message->QS_Flags = MessageBits;