X does not send multitouch touch end events properly

Bug #929408 reported by Jussi Pakkanen
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xorg-server (Ubuntu)
Fix Released
High
Chase Douglas

Bug Description

A test app that demostrates this bug can be downloaded from here: lp:~jpakkane/+junk/touchpad-tester.

My setup is that I have a Magic Trackpad and a Macbook Pro multitouch trackpad. The test app prints out this:

Using device id 2, Virtual core pointer.
Potential device id 11, bcm5974.
Potential device id 13, Apple Wireless Trackpad.

If I use device ids 11 or 13, stuff works. Device id 2 leads to problems, though.

I put down five fingers on one touchpad and then five on the other. Then I lift all fingers up simultaneously. The end result is that I only receive TouchEnds for roughly half of the touches. The others keep on existing.

Possible reasons for this bug include X not sending touch end events or X sending touch end events with a different device id than touch start events.

Tests were run using precise.

Revision history for this message
Rick Spencer (rick-rickspencer3) wrote :

Does Chase or someone want to take a look?

Changed in xorg-server (Ubuntu):
assignee: nobody → Canonical Desktop Experience Team (canonical-dx-team)
Changed in xorg-server (Ubuntu):
assignee: Canonical Desktop Experience Team (canonical-dx-team) → Chase Douglas (chasedouglas)
Revision history for this message
Jussi Pakkanen (jpakkane) wrote :

Current behaviour of X in precise is that Virtual Core Pointer does not provide any touches at all. Thus testing whether this bug still exists or not is impossible.

Will update again once touch reporting works.

Revision history for this message
Chase Douglas (chasedouglas) wrote :

I believe this is due to touch records not ending properly when touches are accepted before they physically end. Since all touches on a touchpad must go to the same window set, once you send multitouch events to one set of windows you cannot send multitouch events to any other windows anymore because the first touches are still logically active in the server.

A second fix for this issue is that the server should only be looking at physically active touches, not logically active but physically ended touches, when determining the window set to send touches to.

Changed in xorg-server (Ubuntu):
status: New → In Progress
importance: Undecided → High
milestone: none → ubuntu-12.04-beta-2
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xorg-server - 2:1.11.4-0ubuntu5

---------------
xorg-server (2:1.11.4-0ubuntu5) precise; urgency=low

  * Update to 1.12 input stack
  * Drop input patches that have been merged upstream:
    - 600-Revert-dix-deduplicate-callers-of-DeliverDeviceEvent.patch
    - 601-Store-window-pointer-in-touch-listener-record.patch
    - 602-Factor-out-TouchEnd-generation-and-delivery.patch
    - 603-Export-TouchEventRejected-as-TouchRejected.patch
    - 604-Move-AllowTouch-to-dix-touch.c-and-rename-to-TouchAc.patch
    - 605-Check-for-proper-window-ID-when-processing-touch-all.patch
    - 606-Implement-early-touch-reject.patch
    - 607-Implement-touch-early-accept.patch
    - 608-dix-fix-an-out-of-memory-crash.patch
    - 609-Xi-handle-new-XIAllowEvents-request-in-inputproto-2..patch
    - 610-Fix-scrolling.patch
    - 611-Fix-touch-punt-crash.patch
    - 612-Fix-vcp-touches-corruption.patch
    - 613-Keep-vcp-touch-class.patch
  * Fix indirect touch grab handling (LP: #929408)
    - Add temporary patch 501_touch_accept_end.patch
    - Add temporary patch 502_indirect_touch_window_set.patch
 -- Chase Douglas <email address hidden> Wed, 07 Mar 2012 15:36:20 -0800

Changed in xorg-server (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.