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

Reply via email to