aboutsummaryrefslogtreecommitdiff
path: root/hw/input
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2017-06-22 09:41:35 +0200
committerGerd Hoffmann <kraxel@redhat.com>2017-06-23 11:50:05 +0200
commit51dbea77a29ea46173373a6dad4ebd95d4661f42 (patch)
tree1303304b2d1339575c83314bdf944ee93b1e91dc /hw/input
parent77b0359bf414ad666d1714dc9888f1017c08e283 (diff)
downloadqemu-51dbea77a29ea46173373a6dad4ebd95d4661f42.zip
qemu-51dbea77a29ea46173373a6dad4ebd95d4661f42.tar.gz
qemu-51dbea77a29ea46173373a6dad4ebd95d4661f42.tar.bz2
hid: Reset kbd modifiers on reset
When resetting the keyboard, we need to reset not just the pending keystrokes, but also any pending modifiers. Otherwise there's a race when we're getting reset while running an escape sequence (modifier 0x100). Cc: qemu-stable@nongnu.org Signed-off-by: Alexander Graf <agraf@suse.de> Message-id: 1498117295-162030-1-git-send-email-agraf@suse.de Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/input')
-rw-r--r--hw/input/hid.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/input/hid.c b/hw/input/hid.c
index 93887ec..0d049ff 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -487,6 +487,7 @@ void hid_reset(HIDState *hs)
memset(hs->kbd.keycodes, 0, sizeof(hs->kbd.keycodes));
memset(hs->kbd.key, 0, sizeof(hs->kbd.key));
hs->kbd.keys = 0;
+ hs->kbd.modifiers = 0;
break;
case HID_MOUSE:
case HID_TABLET: