Author: rharabien Date: Sun Oct 9 20:56:57 2011 New Revision: 54067
URL: http://svn.reactos.org/svn/reactos?rev=54067&view=rev Log: [WIN32K] - Fix translating syskeys to characters. Fixes user32:input winetest.
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/accelerator.c trunk/reactos/subsystems/win32/win32k/ntuser/keyboard.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/accelerator.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/accelerator.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/accelerator.c [iso-8859-1] Sun Oct 9 20:56:57 2011 @@ -397,9 +397,9 @@ _SEH2_END;
if ((Message.message != WM_KEYDOWN) && - (Message.message != WM_SYSKEYDOWN) && - (Message.message != WM_SYSCHAR) && - (Message.message != WM_CHAR)) + (Message.message != WM_SYSKEYDOWN) && + (Message.message != WM_SYSCHAR) && + (Message.message != WM_CHAR)) { RETURN( 0); }
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] Sun Oct 9 20:56:57 2011 @@ -309,6 +309,10 @@
TRACE("TryToTranslate: %04x %x\n", wVirtKey, dwModBits);
+ /* If ALT without CTRL has ben used, remove ALT flag */ + if ((dwModBits & (KBDALT|KBDCTRL)) == KBDALT) + dwModBits &= ~KBDALT; + if (dwModBits > pKbdTbl->pCharModifiers->wMaxModBits) { TRACE("dwModBits %x > wMaxModBits %x\n", dwModBits, pKbdTbl->pCharModifiers->wMaxModBits); @@ -333,10 +337,6 @@ /* Note: we use special value here instead of getting VK_SHIFT mod bit - it's verified */ dwVkModBits ^= KBDSHIFT; } - - /* If ALT without CTRL has ben used, remove ALT flag */ - if ((dwVkModBits & (KBDALT|KBDCTRL)) == KBDALT) - dwVkModBits &= ~KBDALT;
if (dwVkModBits > pKbdTbl->pCharModifiers->wMaxModBits) break;