On 02/01/2011 04:11 PM, Clark, Joel wrote:
What changed recently that exposed this evtouch issue? This driver has seemed
to work OK for over a year, until around mid January.
Qt now relies on XInput2 in order to support multiple contact points per
device. As part of that work, Qt uses data advertised by the input
device driver in order to correctly map labeled buttons to Qt buttons.
Unfortunately, when the evtouch driver is used, the driver advertises
that it has the data, but doesn't seem to set that data up correctly.
James
regards
Joel
-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of James
Sent: Tuesday, February 01, 2011 4:06 PM
To: Carsten Munk
Cc: meego-dev
Subject: Re: [MeeGo-dev] Qt situation with single touch?
On 01/31/2011 02:34 AM, Carsten Munk wrote:
Hi,
After the xinput2 patches came into qt, we have seen problems on IVI
(BMC# 12777 ) and N900 (http://bugs.meego.com/show_bug.cgi?id=10147)
regarding input not working. The problem seems to be that all presses
are seen as constantly held down. On N900 we've even tried to see if
upgrading evdev to latest upstream worked (xinput2 support included),
but no remedy.
Normal X applications work fine, but Qt apps don't work properly.
What is the story here and what is timeframe for it being fixed? I'm a
bit tired of seeing very low % QA reports in acceptance for 4 days in
a row :)
It appears there is a bug with the evtouch (at least) X input driver
such that button labels atoms are not being set correctly in the
XIButtonClassInfo structure provided by X -- which results in Qt not
being able to map the button presses to ButtonLeft. Those atoms are set
correctly when a USB mouse is used or the mtev input driver.
To confirm the above, you can enumerate the configured button labels for
input devices via xinput
$ xinput list --long "Virtual core pointer"
On a good system, you will see all of the button labels being displayed
for the aggregate set of input devices bound to the virtual core
pointer. Names like "Button Left" etc.
With the evtouch driver on IVI, you will see X complain about various
bad Atoms being provided when it attempts to enumerate the button labels.
Within Qt, the atoms provided by X are mapped to known values to
correspond to ButtonLeft, ButtonRight, etc. The code logic breaks down
in Qt's src/gui/kernel/qapplication_x11.cpp's
mapXI2ButtonToButtonLabel() since the label provided by X is bogus it
can't be mapped to a Qt button label, resulting in no button being
identified.
James
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev