1XIALLOWEVENTS(3)                                              XIALLOWEVENTS(3)
2
3
4

NAME

6       XIAllowEvents - Release queued events
7

SYNOPSIS

9       #include <X11/extensions/XInput2.h>
10
11       Status XIAllowEvents( Display *display,
12                             int deviceid,
13                             int event_mode,
14                             Time time );
15
16       Status XIAllowTouchEvents( Display *dpy,
17                                  int deviceid,
18                                  unsigned int touchid,
19                                  Window grab_window,
20                                  int event_mode );
21
22       display
23               Specifies the connection to the X server.
24
25       device
26               Specifies the device that is to be grabbed or released
27
28       event_mode
29               Specifies whether a device is to be thawed and events are to be
30               replayed, or how to handle a grabbed touch sequence.
31
32       time
33               A valid server time or CurrentTime.
34
35       touchid
36               The ID of the touch sequence to accept or reject. The value is ignored
37               for event modes other than AcceptTouch and RejectTouch.
38
39       grab_window
40               The window on which to accept or reject a touch sequence grab. The value
41               is ignored for event modes other than AcceptTouch and RejectTouch.
42

DESCRIPTION

44           The XIAllowEvents request releases some queued events if the client
45           has caused a device to freeze. It also is used to handle touch grab and
46           ownership processing.
47
48           The function has no effect if the specified time is earlier than the last-grab
49           time of the most recent active grab for the client, or if the specified time is
50           later than the current X server time. The time parameter must be CurrentTime for
51           requests with event modes of XIAcceptTouch and XIRejectTouch.
52
53           The following describes the processing that occurs depending on what constant
54           you pass to the event_mode argument:
55
56           XIAsyncDevice:
57               If the specified device is frozen by the client, event processing for that
58               device continues as usual. If the device is frozen multiple times by the
59               client on behalf of multiple separate grabs, XIAsyncDevice thaws for
60               all. XIAsyncDevice has no effect if the specified device is not frozen
61               by the client, but the device need not be grabbed by the client.
62
63           XISyncDevice:
64               If the specified device is frozen and actively grabbed by the client,
65               event processing for that device continues normally until the next
66               button press or release, or key press or release, or a gesture begin or end
67               event (depending on the grab) is reported to the client.
68               At this time, the specified device again appears to freeze.
69               However, if the reported event causes the grab to be released, the
70               specified device does not freeze.
71               XISyncDevice has no effect if the specified device is not frozen by the
72               client or is not grabbed by the client.
73
74           XIReplayDevice:
75               If the specified device is actively grabbed by the client and is frozen
76               as the result of an event having been sent to the client (either from
77               the activation of a XIGrabButton or from a previous XIAllowEvents with
78               mode SyncDevice, but not from a Grab), the grab is released and
79               that event is completely reprocessed.  This time, however, the request
80               ignores any passive grabs at or above (towards the root) the
81               grab window of the grab just released.
82               The request has no effect if the specified device is not grabbed by
83               the client or if it is not frozen as the result of an event.
84               In case of gesture begin event being replayed, the original grabbing
85               client will receive a XI_GesturePinchEnd or XI_GestureSwipeEnd event.
86
87           XIAsyncPairedDevice:
88               If the paired master device is frozen by the client, event processing
89               for it continues as usual. If the paired device is frozen multiple
90               times by the client on behalf of multiple separate grabs,
91               XIAsyncPairedDevice thaws for all.
92               XIAsyncPairedDevice has no effect if the device is not frozen by the
93               client, but those devices need not be grabbed by the client.
94               XIAsyncPairedDevice has no effect if deviceid specifies a slave device.
95
96           XISyncPair:
97               If both the device and the paired master device are frozen by the
98               client, event processing (for both devices) continues normally until
99               the next XI_ButtonPress, XI_ButtonRelease, XI_KeyPress, or XI_KeyRelease
100               event is reported to the client for a grabbed device (button event for
101               a pointer, key event for a keyboard), at which time the devices again
102               appear to freeze. However, if the reported event causes the grab to be
103               released, then the devices do not freeze (but if the other device is
104               still grabbed, then a subsequent event for it will still cause both
105               devices to freeze).
106               XISyncPair has no effect unless both the device and the paired master
107               device are frozen by the client. If the device or paired master device
108               is frozen twice by the client on behalf of two separate grabs,
109               XISyncPair thaws for both (but a subsequent freeze for XISyncPair will
110               only freeze each device once).
111               XISyncPair has no effect if deviceid specifies a slave device.
112
113           XIAsyncPair:
114               If the device and the paired master device are frozen by the client,
115               event processing for both devices continues normally. If a device is
116               frozen twice by the client on behalf of two separate grabs, AsyncBoth
117               thaws for both. XIAsyncPair has no effect unless both the device and the
118               paired master device frozen by the client.
119               XIAsyncPair has no effect if deviceid specifies a slave device.
120
121           XIAcceptTouch:
122               The client is deemed to have taken control of the touch sequence once it
123               owns the sequence. TouchEnd events will be sent to all clients listening
124               to the touch sequence that have either grabbed the touch sequence on a
125               child window of the grab_window or have received events for the touch
126               sequence through event selection. These clients will no longer receive
127               any TouchUpdate events.
128
129           XIRejectTouch:
130               The client is no longer interested in the touch sequence, and will
131               receive a XI_TouchEnd event. If the client is the current owner of the
132               sequence, ownership will be passed on to the next listener.
133

DIAGNOSTICS

135           BadDevice
136                   An invalid deviceid was specified.
137
138           BadAccess
139                   This error may occur if event_mode is XIAcceptTouch and this client
140                   is not the current or potential owner of the specified touch ID.
141
142           BadValue
143                   This error may occur if event_mode is XIAcceptTouch and touch ID is invalid.
144
145           BadWindow
146                   A value for a grab_window argument does not name a defined
147                   Window.
148

SEE ALSO

150           XIGrabButton(3)
151
152
153
154                                  05/04/2023                  XIALLOWEVENTS(3)
Impressum