mirror of
https://github.com/qemu/qemu.git
synced 2024-11-27 05:43:47 +08:00
usb-hid: fixup changed tracking.
Remove leftover calls to usb_hid_changed(). Take care to update the changed flag after delivering a event via GET_REPORT like we do when sending events via interrupt endpoint. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
d1afc48b7c
commit
e7e73892a6
@ -531,18 +531,15 @@ static void usb_keyboard_process_keycode(USBHIDState *hs)
|
||||
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;
|
||||
}
|
||||
|
||||
@ -769,10 +766,12 @@ static int usb_hid_handle_control(USBDevice *dev, USBPacket *p,
|
||||
}
|
||||
break;
|
||||
case GET_REPORT:
|
||||
if (s->kind == USB_MOUSE || s->kind == USB_TABLET)
|
||||
if (s->kind == USB_MOUSE || s->kind == USB_TABLET) {
|
||||
ret = usb_pointer_poll(s, data, length);
|
||||
else if (s->kind == USB_KEYBOARD)
|
||||
} else if (s->kind == USB_KEYBOARD) {
|
||||
ret = usb_keyboard_poll(s, data, length);
|
||||
}
|
||||
s->changed = s->n > 0;
|
||||
break;
|
||||
case SET_REPORT:
|
||||
if (s->kind == USB_KEYBOARD)
|
||||
|
Loading…
Reference in New Issue
Block a user