[I8042PRT]

- Do not treat all extended keys as power keys in HandlePowerKeys. Fixes WM_KEYDOWN not being send right after extended key has been pressed.
See issue #3212 for more details.

svn path=/trunk/; revision=54007
This commit is contained in:
Rafal Harabien 2011-10-05 14:13:00 +00:00
parent f64577c1ea
commit bb7482a50b

View file

@ -279,10 +279,6 @@ HandlePowerKeys(
if (!(InputData->Flags & KEY_E0)) if (!(InputData->Flags & KEY_E0))
return FALSE; return FALSE;
if (InputData->Flags & KEY_BREAK)
/* We already took care of the key press */
return TRUE;
switch (InputData->MakeCode) switch (InputData->MakeCode)
{ {
case KEYBOARD_POWER_CODE: case KEYBOARD_POWER_CODE:
@ -298,6 +294,10 @@ HandlePowerKeys(
return FALSE; return FALSE;
} }
if (InputData->Flags & KEY_BREAK)
/* We already took care of the key press */
return TRUE;
/* Our work can only be done at passive level, so use a workitem */ /* Our work can only be done at passive level, so use a workitem */
DeviceExtension->NewCaps |= KeyPress; DeviceExtension->NewCaps |= KeyPress;
InterlockedExchange((PLONG)&DeviceExtension->LastPowerKey, KeyPress); InterlockedExchange((PLONG)&DeviceExtension->LastPowerKey, KeyPress);