Am 25.06.2011 um 14:55 schrieb Jan Kiszka:
On 2011-06-25 14:37, Andreas Färber wrote:
Am 24.06.2011 um 16:27 schrieb Jan Kiszka:
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;
Doesn't this change mean we can't access any other even pixel either?
Only on 32767x32767 screens (that's the resolution of the tablet).
Well, if it's just a fix for 0/0 I would've expected something like:
e->xdx = x1 ? x1 : 1;
e->ydy = y1 ? y1 : 1;
Andreas