[WIN32K] Since r43772 we now normalize VK_LCONTROL/VK_RCONTROL to VK_CONTROL rather than VK_LCONTROL (and ditto for shift/alt), so update SetKeyState to handle this. Fixes bug 4945.

svn path=/trunk/; revision=46875
This commit is contained in:
Jeffrey Morlan 2010-04-15 00:25:30 +00:00
parent 76a82f0995
commit 8886915477

View file

@ -88,12 +88,12 @@ static VOID APIENTRY SetKeyState(DWORD key, DWORD vk, DWORD ext, BOOL down)
gQueueKeyStateTable[vk] ^= KS_LOCK_BIT; gQueueKeyStateTable[vk] ^= KS_LOCK_BIT;
} }
if (ext && vk == VK_LSHIFT) if (vk == VK_SHIFT)
vk = VK_RSHIFT; vk = ext ? VK_RSHIFT : VK_LSHIFT;
if (ext && vk == VK_LCONTROL) if (vk == VK_CONTROL)
vk = VK_RCONTROL; vk = ext ? VK_RCONTROL : VK_LCONTROL;
if (ext && vk == VK_LMENU) if (vk == VK_MENU)
vk = VK_RMENU; vk = ext ? VK_RMENU : VK_LMENU;
if (down) if (down)
gQueueKeyStateTable[vk] |= KS_DOWN_BIT; gQueueKeyStateTable[vk] |= KS_DOWN_BIT;