[PATCH (v5) 0/15] Multitouch take five

Daniel Stone daniel at fooishbar.org
Wed Jan 19 15:02:51 PST 2011

Hi all,
Another round of multitouch patches ... this lot addresses all the
review comments from the previous patchset, and seems to work quite
reliably and consistently for me.  It's a fairly large change, but the
code is now a fair bit easier to understand and verify.

After discussion with Chase, I removed[0] the TouchOwner flag and split
TouchMotion into separate TouchMotion and TouchMotionUnowned events, as
well as introducing a new TouchOwnership event which indicates that the
receiver now owns the event.

This involved a fairly large-scale change within the server to introduce
the TouchOwnership event, but now means that all changes to the delivery
list happen only in ProcessTouchOwnershipEvent.  As a result, it seems
we're a lot better about correctly sending TouchEnd events, et al: the
main goal of this round was to ensure that every single client gets a
TouchEnd event in every case, after the last touch event has been sent
to it.

Chase is currently working on defining pointer emulation semantics, and
seems to have arrived at a workable solution.  This will involve
changing XIAllowTouchEvents to have three modes instead of two: accept,
reject, and emulate pointer events.  The idea is that pointer emulation
doesn't happen by default, but only when a grab owner explicitly
requests it, or it is the only touch currently active for that device,
and there are no more applicable grabs or selections.  Once a touch was
set to pointer emulation, it would never return any touch events, and
would only generate pointer events.

He's going to work on that while I'm away at LCA and on holiday in
Melbourne for a week after that, so I expect there will be a v6 in about
three weeks.  For now though, the volume of changes seemed to make v5 a
sensible idea, even though it's not yet finalised.  (That and the fact
that testing will be fairly difficult while I'm away, so this patchset
is at least known to work.)

I've only attached the patches that Peter hasn't yet merged into his
for-keith branch, but as always, the full set can be found at:

I'll be doing development in the 'multitouch' branches of the above, so
feel free to pull if you're curious, but don't necessarily expect it to
be perfect. :)

Again, evdev doesn't work with the Magic Mouse due to lacking the mixed
abs/rel valuators patch, which I'll probably look at on the plane.  If
you hear of a Cathay Pacific flight crashing between London and
Melbourne this weekend, then using Bluetooth on a flight was a bad idea.


[0]: It's not quite gone from the source yet - this will happen in v6 -
     and we don't currently send an XITouchOwnership event to the owner on
     TouchBegin.  But, baby steps.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110119/028a9209/attachment.pgp>

More information about the xorg-devel mailing list