Comment 3 for bug 1007847

Revision history for this message
Vladimir Rutsky (rutsky) wrote :

My colleague and I debugged this issue and prepared patch for it.

If we undrestood correctly, bug was caused by code that searches widget that should get touch input. It checks with "childAt()" which child should get input, but doesn't pass event to root widget if no children found (as done in other event handlers, for example in "translateWheelEvent()").

This bug can be reproduced if you try to get touch input in root widget (native X11 window, e.g. call "show()" on Qt widget without parents).

Also, looks like when any widget calls "QWidget.winId()" directly or indirectly (e.g. by setting that this widget is rendering with OpenGL) widget being promoted to native, and too became root of input widgets hierarchy.

Attached patch was tested on our application and Qt demos on Ubuntu 13.04 and Ubuntu 13.10.