summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2011-08-09 23:54:52 +0200
committerGerd Hoffmann <kraxel@redhat.com>2011-08-10 14:14:00 +0200
commitbb0db5273f51629e2c900a27b45b9f8c44ad0e8d (patch)
tree2232eea1cc103537c99449ac82dae0027018615c
parent21635e121ae0f0ab7874152a7c2f96e9d8cd642f (diff)
downloadfocaccia-qemu-bb0db5273f51629e2c900a27b45b9f8c44ad0e8d.tar.gz
focaccia-qemu-bb0db5273f51629e2c900a27b45b9f8c44ad0e8d.zip
hid: register kbd hander in init()
Register the keyboard event handler in hid's init() instead of its reset()
function.

Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--hw/hid.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/hid.c b/hw/hid.c
index 77339f7a12..3dc4246cf1 100644
--- a/hw/hid.c
+++ b/hw/hid.c
@@ -364,7 +364,6 @@ void hid_reset(HIDState *hs)
 {
     switch (hs->kind) {
     case HID_KEYBOARD:
-        qemu_add_kbd_event_handler(hid_keyboard_event, hs);
         memset(hs->kbd.keycodes, 0, sizeof(hs->kbd.keycodes));
         memset(hs->kbd.key, 0, sizeof(hs->kbd.key));
         hs->kbd.keys = 0;
@@ -398,7 +397,9 @@ void hid_init(HIDState *hs, int kind, HIDEventFunc event)
     hs->kind = kind;
     hs->event = event;
 
-    if (hs->kind == HID_MOUSE) {
+    if (hs->kind == HID_KEYBOARD) {
+        qemu_add_kbd_event_handler(hid_keyboard_event, hs);
+    } else if (hs->kind == HID_MOUSE) {
         hs->ptr.eh_entry = qemu_add_mouse_event_handler(hid_pointer_event, hs,
                                                         0, "QEMU HID Mouse");
     } else if (hs->kind == HID_TABLET) {