Bug 62471 - Filtered XI_TouchEnd causing non root windows to have a non terminated touch sequence.
Summary: Filtered XI_TouchEnd causing non root windows to have a non terminated touch ...
Status: RESOLVED MOVED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Input/Core (show other bugs)
Version: 7.7 (2012.06)
Hardware: ARM Linux (All)
: medium major
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-18 14:08 UTC by Jay L.
Modified: 2018-12-17 17:28 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg.log file that contains the standard output from launching X (11.48 KB, text/plain)
2013-03-18 14:08 UTC, Jay L.
no flags Details
The xorg.conf file (1.24 KB, text/plain)
2013-03-18 14:09 UTC, Jay L.
no flags Details

Description Jay L. 2013-03-18 14:08:16 UTC
Created attachment 76680 [details]
Xorg.log file that contains the standard output from launching X

I am seeing a touch sequence of XI_TouchBegin, then sometimes I see an XI_TouchUpdate, then something goes wrong and the XI_TouchEnd that you would expect is instead created as an XI_RawTouchEnd.  This causes the application to think that that finger is still down, and that it never comes back up. 

In order to see this touch sequence I press one combo box, then press another combo box, then press an area of the application that doesn't have anything associated with it.   It is not 100% reproducible, but it is very easy to get to happen.  I have also seen this happen with the QT 5.0.1 fingerpaint example, as well as the drag and drop example (which becomes something more like drag and hold).

The XI_RawTouchEnd is then filtered because the window it is trying to send it to is not a root window and thus can't listen for it (at least that is what I think is going on, the actual code shows the xi2mask_isset is returning false on the XI_RawTouchEnd event).

Based on debugging prints that I have put into the xorg-server code it shows that in DeliverOneGrabbedEvent (of dix/events.c) (when the XI_RawTouchEnd event is generated instead of an XI_TouchEnd) in the XI2 section of the  switch (level) scope:
  GetXI2MaskByte is returning 0 because xi2mask_isset is returning false for the XI_RawTouchEnd event.

I am using Xorg 7.7, xorg-server 1.12.2, and xf86-input-evdev-2.7.0.  The application I am using to see this behavior is the QT 5.0.1 example program called "lineedits."  

I have attached my xorg.conf.
I have attached a the xorg.log.
Comment 1 Jay L. 2013-03-18 14:09:11 UTC
Created attachment 76681 [details]
The xorg.conf file

Here is the xorg.conf that I mentioned in the initial bug description.
Comment 2 GitLab Migration User 2018-12-17 17:28:35 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/603.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.