[Top][All Lists]
[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