From 373dfc441d55fe6619929fd049ab635bdfca9e62 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Mon, 17 Jan 2011 19:29:34 +0100 Subject: [PATCH] usb-hid: modifiers should generate an event When a modifier key is pressed or released, the USB HID keyboard still answers NAK, unless another key is also pressed or released. The patch fixes that by calling usb_hid_changed() when a modifier key is pressed or released. Signed-off-by: Aurelien Jarno --- hw/usb-hid.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/usb-hid.c b/hw/usb-hid.c index e8de301a13..12bf46fa7e 100644 --- a/hw/usb-hid.c +++ b/hw/usb-hid.c @@ -460,15 +460,18 @@ static void usb_keyboard_event(void *opaque, int keycode) case 0xe0: if (s->modifiers & (1 << 9)) { s->modifiers ^= 3 << 8; + usb_hid_changed(hs); return; } case 0xe1 ... 0xe7: if (keycode & (1 << 7)) { s->modifiers &= ~(1 << (hid_code & 0x0f)); + usb_hid_changed(hs); return; } case 0xe8 ... 0xef: s->modifiers |= 1 << (hid_code & 0x0f); + usb_hid_changed(hs); return; } -- 2.30.2