qemu-devel
[Top][All Lists]
Advanced

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

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


From: andrzej zaborowski
Subject: Re: [Qemu-devel] [PATCH v2] usb-hid: Fix 0/0 position for Windows in tablet mode
Date: Sat, 30 Jul 2011 07:51:52 +0200

On 13 July 2011 23:05, Andreas Färber <address@hidden> wrote:
> Am 12.07.2011 um 09:47 schrieb Jan Kiszka:
>
>> On 2011-07-04 20:15, andrzej zaborowski wrote:
>>>
>>> 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?
>>
>> Yes, looks like. Is this one better?

I pushed this version, thanks.

Cheers



reply via email to

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