On 2011-06-25 15:10, Andreas Färber wrote: > 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;
Works as well, my version is a little bit simpler. But I don't mind, will post whatever is preferred to fix this. Jan
signature.asc
Description: OpenPGP digital signature