From 70543c9952d2ff9f6fddb0a0948218e8e6f2dacb Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 11 Dec 2008 18:04:47 +0000 Subject: [PATCH] usb-hid.c: fix usb mouse wheel This patch fixes the usb mouse wheel of usb devices. [ Previously, tablets would fail to subtract dz from e->dz thus producing an infinite stream of reports; also the wheel direction inversions had been multipled by merge damage resulting in the wrong number of inversions for mice. -iwj ] Signed-off-by: Stefano Stabellini --- hw/usb-hid.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/hw/usb-hid.c b/hw/usb-hid.c index 1c6bd09e5..e4e58f2ea 100644 --- a/hw/usb-hid.c +++ b/hw/usb-hid.c @@ -568,6 +568,7 @@ static int usb_pointer_poll(USBHIDState *hs, uint8_t *buf, int len) dz = int_clamp(e->dz, -128, 127); + e->dz -= dz; if (s->xyrel) { dx = int_clamp(e->xdx, -128, 127); dy = int_clamp(e->ydy, -128, 127); @@ -586,9 +587,6 @@ static int usb_pointer_poll(USBHIDState *hs, uint8_t *buf, int len) QUEUE_INCR(s->head); } - /* Appears we have to invert the wheel direction */ - dz = 0 - dz; - b = 0; if (e->buttons_state & MOUSE_EVENT_LBUTTON) b |= 0x01; @@ -611,9 +609,6 @@ static int usb_pointer_poll(USBHIDState *hs, uint8_t *buf, int len) break; case USB_TABLET: - /* Appears we have to invert the wheel direction */ - dz = 0 - dz; - buf[0] = b; buf[1] = dx & 0xff; buf[2] = dx >> 8; -- 2.39.5