[WIN32K] - Fix translating syskeys to characters. Fixes user32:input winetest.

svn path=/trunk/; revision=54067
This commit is contained in:
Rafal Harabien 2011-10-09 20:56:57 +00:00
parent b63c511bbf
commit 2cce447ebb
2 changed files with 7 additions and 7 deletions

View file

@ -309,6 +309,10 @@ IntTranslateChar(WORD wVirtKey,
TRACE("TryToTranslate: %04x %x\n", wVirtKey, dwModBits); 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) if (dwModBits > pKbdTbl->pCharModifiers->wMaxModBits)
{ {
TRACE("dwModBits %x > wMaxModBits %x\n", dwModBits, pKbdTbl->pCharModifiers->wMaxModBits); TRACE("dwModBits %x > wMaxModBits %x\n", dwModBits, pKbdTbl->pCharModifiers->wMaxModBits);
@ -334,10 +338,6 @@ IntTranslateChar(WORD wVirtKey,
dwVkModBits ^= KBDSHIFT; dwVkModBits ^= KBDSHIFT;
} }
/* If ALT without CTRL has ben used, remove ALT flag */
if ((dwVkModBits & (KBDALT|KBDCTRL)) == KBDALT)
dwVkModBits &= ~KBDALT;
if (dwVkModBits > pKbdTbl->pCharModifiers->wMaxModBits) if (dwVkModBits > pKbdTbl->pCharModifiers->wMaxModBits)
break; break;