Touch grabs are not really synchronous nor asynchronous. Use a separate grab mode value for touch grabs, just to make the protocol seem more sane.
Signed-off-by: Chase Douglas <[email protected]> --- XI2.h | 1 + specs/XI2proto.txt | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/XI2.h b/XI2.h index f6bdbb2..2aea35e 100644 --- a/XI2.h +++ b/XI2.h @@ -72,6 +72,7 @@ /* Grab modes */ #define XIGrabModeSync 0 #define XIGrabModeAsync 1 +#define XIGrabModeTouch 2 /* Grab reply status codes */ #define XIGrabSuccess 0 diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index 4650997..82f2b42 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -1382,7 +1382,7 @@ you pass to the event-mode argument: grab_window: Window cursor: Cursor owner_events: Bool - grab_mode: { Synchronous, Asynchronous } + grab_mode: { Synchronous, Asynchronous, Touch* } paired_device_mode: { Synchronous, Asynchronous } num_modifiers: INT16 mask_len: CARD16 @@ -1399,6 +1399,8 @@ you pass to the event-mode argument: GRABMODIFIERINFO { status: Access modifiers: CARD32 } +* since XI 2.1 + Establish an explicit passive grab for a button or keycode on the specified input device. @@ -1425,7 +1427,9 @@ on the specified input device. generated by the server until the grabbing client issues a releasing XIAllowEvents request or until the device grab is released. Actual device input events are not lost while the device - is frozen; they are simply queued for later processing. + is frozen; they are simply queued for later processing. If grab_type + is GrabtypeTouchBegin, grab_mode must be set to Touch. + grabs, grab mask_len Length of mask in 4 byte units. mask @@ -1549,6 +1553,9 @@ grab deactivates, addional LeaveNotify events with mode XIPassiveUngrabNotify are generated and sent to the grabbing client before the grab deactivates. +For GrabtypeTouchBegin, grab_mode must be Touch or a BadValue error +is generated. + See section 4.4 for additional notes on touch grabs, as they do not behave like traditional grabs: in particular, they do not freeze the device, and delivery of touch events continues even if the device is -- 1.7.4.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
