qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] usb-hid: Fix 0/0 position for Windows in tablet


From: andrzej zaborowski
Subject: Re: [Qemu-devel] [PATCH] usb-hid: Fix 0/0 position for Windows in tablet mode
Date: Mon, 4 Jul 2011 20:15:16 +0200

On 26 June 2011 11:11, Jan Kiszka <address@hidden> wrote:
> 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 <address@hidden>
>>>>> ---
>>>>> 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.

Would it be enough to just do this for x or y, not both?

Cheers



reply via email to

[Prev in Thread] Current Thread [Next in Thread]