[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

@ -397,9 +397,9 @@ NtUserTranslateAccelerator(
_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);
}

View file

@ -309,6 +309,10 @@ IntTranslateChar(WORD wVirtKey,
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);
@ -334,10 +338,6 @@ IntTranslateChar(WORD wVirtKey,
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;