Author: jmorlan Date: Thu Apr 15 02:25:30 2010 New Revision: 46875
URL: http://svn.reactos.org/svn/reactos?rev=46875&view=rev Log: [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.
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/keyboard.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/keyboard.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/keyboard.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/keyboard.c [iso-8859-1] Thu Apr 15 02:25:30 2010 @@ -88,12 +88,12 @@ gQueueKeyStateTable[vk] ^= KS_LOCK_BIT; }
- if (ext && vk == VK_LSHIFT) - vk = VK_RSHIFT; - if (ext && vk == VK_LCONTROL) - vk = VK_RCONTROL; - if (ext && vk == VK_LMENU) - vk = VK_RMENU; + if (vk == VK_SHIFT) + vk = ext ? VK_RSHIFT : VK_LSHIFT; + if (vk == VK_CONTROL) + vk = ext ? VK_RCONTROL : VK_LCONTROL; + if (vk == VK_MENU) + vk = ext ? VK_RMENU : VK_LMENU;
if (down) gQueueKeyStateTable[vk] |= KS_DOWN_BIT;