From: Aurelien Jarno Date: Mon, 17 Jan 2011 18:29:34 +0000 (+0100) Subject: usb-hid: modifiers should generate an event X-Git-Tag: v0.14.0-rc0~129 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=373dfc441d55fe6619929fd049ab635bdfca9e62;p=thirdparty%2Fqemu.git 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 --- diff --git a/hw/usb-hid.c b/hw/usb-hid.c index e8de301a13c..12bf46fa7e9 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; }