For unknown reasons, Windows drivers (tested with XP and Win7) ignore
usb-tablet events that move the pointer to 0/0. So always set bit 0 of
the coordinates.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 hw/usb-hid.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/hw/usb-hid.c b/hw/usb-hid.c
index d711b5c..2b9a451 100644
--- a/hw/usb-hid.c
+++ b/hw/usb-hid.c
@@ -457,8 +457,10 @@ static void usb_pointer_event_combine(USBPointerEvent *e, 
int xyrel,
         e->xdx += x1;
         e->ydy += y1;
     } else {
-        e->xdx = x1;
-        e->ydy = y1;
+        /* Windows drivers do not like the 0/0 position and ignore such
+         * events. */
+        e->xdx = x1 | 1;
+        e->ydy = y1 | 1;
     }
     e->dz += z1;
 }

Reply via email to