[ros-diffs] [rharabien] 54007: [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 ...

rharabien at svn.reactos.org rharabien at svn.reactos.org
Wed Oct 5 14:13:00 UTC 2011


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;




More information about the Ros-diffs mailing list