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/keyboard.c?rev=54007&r1=54006&r2=54007&view=diff
==============================================================================
--- 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;


Reply via email to