diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2011-08-24 13:32:30 -0700 |
---|---|---|
committer | Chase Douglas <chase.douglas@canonical.com> | 2011-08-24 19:02:27 -0700 |
commit | cec253561ab3feaa0a5a57fa8aa47db15662cf3d (patch) | |
tree | e09ad215ac3c4ba5690e5e9169763b399f228232 /specs | |
parent | 1cb00433583341b3c52c8d3f62dcd19a55ddca29 (diff) |
Introduce Touch grab mode
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 <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'specs')
-rw-r--r-- | specs/XI2proto.txt | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt index a246dfb..68612a8 100644 --- a/specs/XI2proto.txt +++ b/specs/XI2proto.txt @@ -1380,7 +1380,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 @@ -1397,6 +1397,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. @@ -1423,7 +1425,8 @@ 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. mask_len Length of mask in 4 byte units. mask @@ -1547,6 +1550,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 |