Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
XIALLOWEVENTS(3)						XIALLOWEVENTS(3)

NAME
     XIAllowEvents - Release queued events

SYNOPSIS
     #include <X11/extensions/XInput2.h>

     Status XIAllowEvents( Display *display,
			   int deviceid,
			   int event_mode,
			   Time time );

     Status XIAllowTouchEvents( Display *dpy,
				int deviceid,
				unsigned int touchid,
				Window grab_window,
				int event_mode );

     display
	     Specifies the connection to the X server.

     device
	     Specifies the device that is to be grabbed or released

     event_mode
	     Specifies whether a device is to be thawed and events are to be
	     replayed, or how to handle a grabbed touch sequence.

     time
	     A valid server time or CurrentTime.

     touchid
	     The ID of the touch sequence to accept or reject. The value is ignored
	     for event modes other than AcceptTouch and RejectTouch.

     grab_window
	     The window on which to accept or reject a touch sequence grab. The value
	     is ignored for event modes other than AcceptTouch and RejectTouch.

DESCRIPTION
	 The XIAllowEvents request releases some queued events if the client
	 has caused a device to freeze. It also is used to handle touch grab and
	 ownership processing.

	 The function has no effect if the specified time is earlier than the last-grab
	 time of the most recent active grab for the client, or if the specified time is
	 later than the current X server time. The time parameter must be CurrentTime for
	 requests with event modes of XIAcceptTouch and XIRejectTouch.

	 The following describes the processing that occurs depending on what constant
	 you pass to the event_mode argument:

	 XIAsyncDevice:
	     If the specified device is frozen by the client, event processing for that
	     device continues as usual. If the device is frozen multiple times by the
	     client on behalf of multiple separate grabs, XIAsyncDevice thaws for
	     all. XIAsyncDevice has no effect if the specified device is not frozen
	     by the client, but the device need not be grabbed by the client.

	 XISyncDevice:
	     If the specified device is frozen and actively grabbed by the client,
	     event processing for that device continues normally until the next
	     button press or release, or key press or release, or a gesture begin or end
	     event (depending on the grab) is reported to the client.
	     At this time, the specified device again appears to freeze.
	     However, if the reported event causes the grab to be released, the
	     specified device does not freeze.
	     XISyncDevice has no effect if the specified device is not frozen by the
	     client or is not grabbed by the client.

	 XIReplayDevice:
	     If the specified device is actively grabbed by the client and is frozen
	     as the result of an event having been sent to the client (either from
	     the activation of a XIGrabButton or from a previous XIAllowEvents with
	     mode SyncDevice, but not from a Grab), the grab is released and
	     that event is completely reprocessed.  This time, however, the request
	     ignores any passive grabs at or above (towards the root) the
	     grab window of the grab just released.
	     The request has no effect if the specified device is not grabbed by
	     the client or if it is not frozen as the result of an event.
	     In case of gesture begin event being replayed, the original grabbing
	     client will receive a XI_GesturePinchEnd or XI_GestureSwipeEnd event.

	 XIAsyncPairedDevice:
	     If the paired master device is frozen by the client, event processing
	     for it continues as usual. If the paired device is frozen multiple
	     times by the client on behalf of multiple separate grabs,
	     XIAsyncPairedDevice thaws for all.
	     XIAsyncPairedDevice has no effect if the device is not frozen by the
	     client, but those devices need not be grabbed by the client.
	     XIAsyncPairedDevice has no effect if deviceid specifies a slave device.

	 XISyncPair:
	     If both the device and the paired master device are frozen by the
	     client, event processing (for both devices) continues normally until
	     the next XI_ButtonPress, XI_ButtonRelease, XI_KeyPress, or XI_KeyRelease
	     event is reported to the client for a grabbed device (button event for
	     a pointer, key event for a keyboard), at which time the devices again
	     appear to freeze. However, if the reported event causes the grab to be
	     released, then the devices do not freeze (but if the other device is
	     still grabbed, then a subsequent event for it will still cause both
	     devices to freeze).
	     XISyncPair has no effect unless both the device and the paired master
	     device are frozen by the client. If the device or paired master device
	     is frozen twice by the client on behalf of two separate grabs,
	     XISyncPair thaws for both (but a subsequent freeze for XISyncPair will
	     only freeze each device once).
	     XISyncPair has no effect if deviceid specifies a slave device.

	 XIAsyncPair:
	     If the device and the paired master device are frozen by the client,
	     event processing for both devices continues normally. If a device is
	     frozen twice by the client on behalf of two separate grabs, AsyncBoth
	     thaws for both. XIAsyncPair has no effect unless both the device and the
	     paired master device frozen by the client.
	     XIAsyncPair has no effect if deviceid specifies a slave device.

	 XIAcceptTouch:
	     The client is deemed to have taken control of the touch sequence once it
	     owns the sequence. TouchEnd events will be sent to all clients listening
	     to the touch sequence that have either grabbed the touch sequence on a
	     child window of the grab_window or have received events for the touch
	     sequence through event selection. These clients will no longer receive
	     any TouchUpdate events.

	 XIRejectTouch:
	     The client is no longer interested in the touch sequence, and will
	     receive a XI_TouchEnd event. If the client is the current owner of the
	     sequence, ownership will be passed on to the next listener.

DIAGNOSTICS
	 BadDevice
		 An invalid deviceid was specified.

	 BadAccess
		 This error may occur if event_mode is XIAcceptTouch and this client
		 is not the current or potential owner of the specified touch ID.

	 BadValue
		 This error may occur if event_mode is XIAcceptTouch and touch ID is invalid.

	 BadWindow
		 A value for a grab_window argument does not name a defined
		 Window.

SEE ALSO
	 XIGrabButton(3)

				   05/18/2026			XIALLOWEVENTS(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XIAllowEvents&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help