diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-10-08 12:30:14 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2010-10-20 12:10:59 -0500 |
commit | b2d4d8329963b13c5cebe5944dcc99f0e9d1b5c7 (patch) | |
tree | e914e92f51b5607b4c1cff3a54cbaf38105b8d1d /hw/usb-wacom.c | |
parent | cd496926155afcb3b6323e70dd720dc118b3a255 (diff) |
wacom tablet: activate event handlers.
Add qemu_activate_mouse_event_handler() calls to the usb wavom tablet so
it actually receives events. Also make sure we only remove the handler
if we registered it before.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/usb-wacom.c')
-rw-r--r-- | hw/usb-wacom.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/hw/usb-wacom.c b/hw/usb-wacom.c index fe052eb756..47f26cd0a3 100644 --- a/hw/usb-wacom.c +++ b/hw/usb-wacom.c @@ -160,6 +160,7 @@ static int usb_mouse_poll(USBWacomState *s, uint8_t *buf, int len) if (!s->mouse_grabbed) { s->eh_entry = qemu_add_mouse_event_handler(usb_mouse_event, s, 0, "QEMU PenPartner tablet"); + qemu_activate_mouse_event_handler(s->eh_entry); s->mouse_grabbed = 1; } @@ -197,6 +198,7 @@ static int usb_wacom_poll(USBWacomState *s, uint8_t *buf, int len) if (!s->mouse_grabbed) { s->eh_entry = qemu_add_mouse_event_handler(usb_wacom_event, s, 1, "QEMU PenPartner tablet"); + qemu_activate_mouse_event_handler(s->eh_entry); s->mouse_grabbed = 1; } @@ -334,8 +336,10 @@ static int usb_wacom_handle_control(USBDevice *dev, int request, int value, ret = 0; break; case WACOM_SET_REPORT: - qemu_remove_mouse_event_handler(s->eh_entry); - s->mouse_grabbed = 0; + if (s->mouse_grabbed) { + qemu_remove_mouse_event_handler(s->eh_entry); + s->mouse_grabbed = 0; + } s->mode = data[0]; ret = 0; break; @@ -397,7 +401,10 @@ static void usb_wacom_handle_destroy(USBDevice *dev) { USBWacomState *s = (USBWacomState *) dev; - qemu_remove_mouse_event_handler(s->eh_entry); + if (s->mouse_grabbed) { + qemu_remove_mouse_event_handler(s->eh_entry); + s->mouse_grabbed = 0; + } } static int usb_wacom_initfn(USBDevice *dev) |