diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-03-18 15:10:34 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-03-18 16:20:12 +1000 |
commit | 9c2817fd761bbe6c6da4e2a5638d80fa53975c4b (patch) | |
tree | ed6ff1c38b44ed7a88abe9452589d337be02f460 | |
parent | c883261f2bad6196e5ff1b3c1397300775e55da7 (diff) |
specs: Rewrite Touch events delivery section
And add a fixme
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | specs/XI2proto.txt | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index c3e8c07..731baf2 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -406,22 +406,25 @@ DependentTouch, IndependentPointer, and SemiMultitouch devices. 5.3 Touch event delivery ~~~~~~~~~~~~~~~~~~~~~~~~ -Window sets for event propagation for direct device touches contain the windows -from the root to the child in which the touch originated. - -Indirect device window sets depend on whether other touches are active. For -the first touch on an indirect device, the window set contains the windows from -the root to the current window underneath the position of the device's pointer. -For subsequent touches on the device, the window set is identical to the window -set of the first touch. Once all touches have been released, the window set is -reset and re-calculated on the first subsequent touch. - -The delivery of touch events is not changed by any modifications to the window -hierarchy after the window set has been determined for the touch, nor is it -affected by new grabs or selections. - -No touches from an indirect device may begin while the device is floating, as -it does not have an associated pointer position to focus events. +For direct touch devices, the window set for event propagation is the set of +windows from the root window to the child in which the touch sequence +begins. + +For indirect devices, the window set for event propagation is the set of +windows from the root window to the window that contains the device's +pointer. An indirect device may only have one window set at a time. Any +future touch sequence will use the same window set. The window set is +cleared when all touch sequences on the device end. + +A window set is calculated on TouchBegin and remains constant until the end +of the sequence Modifications to the window hierarchy, new grabs or changed +event selection do not affect the window set. + +FIXME: + No touches from an indirect device may begin while the device is + floating, as it does not have an associated pointer position to focus + events. [incorrect, remove it? why would it matter] + 5.3.1 Pointer event handling for indirect touch devices ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |