Author: rharabien
Date: Wed Oct 5 14:13:00 2011
New Revision: 54007
URL: http://svn.reactos.org/svn/reactos?rev=54007&view=rev
Log:
[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.
Modified:
trunk/reactos/drivers/input/i8042prt/keyboard.c
Modified: trunk/reactos/drivers/input/i8042prt/keyboard.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/input/i8042prt/key…
==============================================================================
--- trunk/reactos/drivers/input/i8042prt/keyboard.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/input/i8042prt/keyboard.c [iso-8859-1] Wed Oct 5 14:13:00 2011
@@ -279,24 +279,24 @@
if (!(InputData->Flags & KEY_E0))
return FALSE;
- if (InputData->Flags & KEY_BREAK)
+ switch (InputData->MakeCode)
+ {
+ case KEYBOARD_POWER_CODE:
+ KeyPress = SYS_BUTTON_POWER;
+ break;
+ case KEYBOARD_SLEEP_CODE:
+ KeyPress = SYS_BUTTON_SLEEP;
+ break;
+ case KEYBOARD_WAKE_CODE:
+ KeyPress = SYS_BUTTON_WAKE;
+ break;
+ default:
+ return FALSE;
+ }
+
+ if (InputData->Flags & KEY_BREAK)
/* We already took care of the key press */
return TRUE;
-
- switch (InputData->MakeCode)
- {
- case KEYBOARD_POWER_CODE:
- KeyPress = SYS_BUTTON_POWER;
- break;
- case KEYBOARD_SLEEP_CODE:
- KeyPress = SYS_BUTTON_SLEEP;
- break;
- case KEYBOARD_WAKE_CODE:
- KeyPress = SYS_BUTTON_WAKE;
- break;
- default:
- return FALSE;
- }
/* Our work can only be done at passive level, so use a workitem */
DeviceExtension->NewCaps |= KeyPress;