Request for some insights into a pointer grabbing + pointer emulation issue.
daniel.dandrada at canonical.com
Wed Nov 14 09:37:05 PST 2012
I've been investigating an issue where xserver simply stops sending
ButtonPress and ButtonRelease events, out of touch events, to a window.
I've spent already quite a few days studying the issue, looking at the
pointer grabbing + pointer emulation logic, and although progress has
been made, I fear reaching insanity before finally cracking it. :)
I've a good amount of information in a log, so my hope is that some
expert in (or author of) the touch input code (e.g. Peter Hutterer)
might be able to shed some light on the issue without much effort.
Here's is the situation:
The setup is a touchscreen laptop running Ubuntu.
I just repeatedly tap on the top-most icon (the one which has the Ubuntu
logo) of Ubuntu's launcher. Those taps alternately open and close the
dash (a fullscreen window that shows icons for applications, media and
other files). At some point those taps stop having any effect. I.e., the
launcher no longer gets ButtonPress and ButtonRelease events out of them.
And here's is the corresponding log (from bug 56578):
>From touches 2 to 26, launcher is the first window in the list of
listeners. From touch 27 onwards, the root window is the first one.
Problem is, from touch 27 onwards, xserver fails to pass the touch
ownership down to the launcher window because there's always an older
pointer-emulated touch (touch 26) lying around which it apparently can't
get rid of (i.e. properly process).
More information about the xorg-devel