From 9c2817fd761bbe6c6da4e2a5638d80fa53975c4b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 18 Mar 2011 15:10:34 +1000 Subject: [PATCH] specs: Rewrite Touch events delivery section And add a fixme Signed-off-by: Peter Hutterer --- specs/XI2proto.txt | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 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. +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. -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. +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. -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. +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] -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. 5.3.1 Pointer event handling for indirect touch devices ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^