]> xenbits.xensource.com Git - qemu-upstream-4.5-testing.git/commitdiff
input (curses): mask keycodes to remove modifier bits
authorAndrew Oates <andrew@aoates.org>
Sat, 24 May 2014 00:16:09 +0000 (20:16 -0400)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 5 Aug 2014 16:36:31 +0000 (11:36 -0500)
Without the mask, control bits are passed on in the keycode, generating
incorrect PS/2 sequences when SHIFT, ALT, etc are held down.

Cc: qemu-stable@nongnu.org
Signed-off-by: Andrew Oates <andrew@aoates.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit f5c0ab131265270c1e7852ec0d4e284a219d63d4)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
ui/curses.c

index b044790e43d1194569256334c695893ecc2d9a9c..de85f7610fbbf4cbdbee0bd5c96a88b571aa1aa4 100644 (file)
@@ -288,8 +288,8 @@ static void curses_refresh(DisplayChangeListener *dcl)
                 qemu_input_event_send_key_number(NULL, GREY | ALT_CODE, true);
             }
 
-            qemu_input_event_send_key_number(NULL, keycode, true);
-            qemu_input_event_send_key_number(NULL, keycode, false);
+            qemu_input_event_send_key_number(NULL, keycode & KEY_MASK, true);
+            qemu_input_event_send_key_number(NULL, keycode & KEY_MASK, false);
 
             if (keycode & ALTGR) {
                 qemu_input_event_send_key_number(NULL, GREY | ALT_CODE, false);