dinput: Explicitly set extended key flag for Right Shift.
authorVitaliy Margolen <wine-patches@kievinfo.com>
Sat, 26 Apr 2008 23:35:43 +0000 (17:35 -0600)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 28 Apr 2008 11:27:51 +0000 (13:27 +0200)
dlls/dinput/keyboard.c

index 87837ff..84d9f60 100644 (file)
@@ -64,7 +64,9 @@ static void KeyboardCallback( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARAM
     TRACE("(%p) %ld,%ld\n", iface, wparam, lparam);
 
     dik_code = hook->scanCode & 0xff;
-    if (hook->flags & LLKHF_EXTENDED) dik_code |= 0x80;
+    /* R-Shift is special - it is an extended key with separate scan code */
+    if (hook->flags & LLKHF_EXTENDED && dik_code != 0x36)
+        dik_code |= 0x80;
 
     new_diks = hook->flags & LLKHF_UP ? 0 : 0x80;