XNextEvent(3) XLIB FUNCTIONS XNextEvent(3)

# [NAME](#NAME)

XNextEvent, XPeekEvent, XWindowEvent, XCheckWindowEvent, XMaskEvent, XCheckMaskEvent, XCheckTypedEvent, XCheckTypedWindowEvent - select events by type

# [SYNTAX](#SYNTAX)

int XNextEvent(Display \**display*, XEvent \**event\_return*);

int XPeekEvent(Display \**display*, XEvent \**event\_return*);

int XWindowEvent(Display \**display*, Window *w*, long *event\_mask*, XEvent \**event\_return*);

Bool XCheckWindowEvent(Display \**display*, Window *w*, long *event\_mask*, XEvent \**event\_return*);

int XMaskEvent(Display \**display*, long *event\_mask*, XEvent \**event\_return*);

Bool XCheckMaskEvent(Display \**display*, long *event\_mask*, XEvent \**event\_return*);

Bool XCheckTypedEvent(Display \**display*, int *event\_type*, XEvent \**event\_return*);

Bool XCheckTypedWindowEvent(Display \**display*, Window *w*, int *event\_type*, XEvent \**event\_return*);

# [ARGUMENTS](#ARGUMENTS)

[*display*](#display)

Specifies the connection to the X server.

[*event\_mask*](#event_mask)

Specifies the event mask.

[*event\_return*](#event_return)

Returns the matched event's associated structure.

[*event\_return*](#event_return~2)

Returns the next event in the queue.

[*event\_return*](#event_return~3)

Returns a copy of the matched event's associated structure.

[*event\_type*](#event_type)

Specifies the event type to be compared.

[*w*](#w)

Specifies the window whose event you are interested in.

# [DESCRIPTION](#DESCRIPTION)

The **XNextEvent** function copies the first event from the event queue into the specified **XEvent** structure and then removes it from the queue. If the event queue is empty, **XNextEvent** flushes the output buffer and blocks until an event is received.

The **XPeekEvent** function returns the first event from the event queue, but it does not remove the event from the queue. If the queue is empty, **XPeekEvent** flushes the output buffer and blocks until an event is received. It then copies the event into the client-supplied **XEvent** structure without removing it from the event queue.

The **XWindowEvent** function searches the event queue for an event that matches both the specified window and event mask. When it finds a match, **XWindowEvent** removes that event from the queue and copies it into the specified **XEvent** structure. The other events stored in the queue are not discarded. If a matching event is not in the queue, **XWindowEvent** flushes the output buffer and blocks until one is received.

The **XCheckWindowEvent** function searches the event queue and then the events available on the server connection for the first event that matches the specified window and event mask. If it finds a match, **XCheckWindowEvent** removes that event, copies it into the specified **XEvent** structure, and returns **True**. The other events stored in the queue are not discarded. If the event you requested is not available, **XCheckWindowEvent** returns **False**, and the output buffer will have been flushed.

The **XMaskEvent** function searches the event queue for the events associated with the specified mask. When it finds a match, **XMaskEvent** removes that event and copies it into the specified **XEvent** structure. The other events stored in the queue are not discarded. If the event you requested is not in the queue, **XMaskEvent** flushes the output buffer and blocks until one is received.

The **XCheckMaskEvent** function searches the event queue and then any events available on the server connection for the first event that matches the specified mask. If it finds a match, **XCheckMaskEvent** removes that event, copies it into the specified **XEvent** structure, and returns **True**. The other events stored in the queue are not discarded. If the event you requested is not available, **XCheckMaskEvent** returns **False**, and the output buffer will have been flushed.

The **XCheckTypedEvent** function searches the event queue and then any events available on the server connection for the first event that matches the specified type. If it finds a match, **XCheckTypedEvent** removes that event, copies it into the specified **XEvent** structure, and returns **True**. The other events in the queue are not discarded. If the event is not available, **XCheckTypedEvent** returns **False**, and the output buffer will have been flushed.

The **XCheckTypedWindowEvent** function searches the event queue and then any events available on the server connection for the first event that matches the specified type and window. If it finds a match, **XCheckTypedWindowEvent** removes the event from the queue, copies it into the specified **XEvent** structure, and returns **True**. The other events in the queue are not discarded. If the event is not available, **XCheckTypedWindowEvent** returns **False**, and the output buffer will have been flushed.

# [SEE ALSO](#SEE_ALSO)

[**XAnyEvent**(3)](/man/os/libx11/XAnyEvent.3), [**XIfEvent**(3)](/man/os/libx11/XIfEvent.3), [**XPutBackEvent**(3)](/man/os/libx11/XPutBackEvent.3), [**XSendEvent**(3)](/man/os/libx11/XSendEvent.3)  
*Xlib - C Language X Interface*

libX11 1.8.14 X Version 11

---

Document: XCheckWindowEvent(3) from libx11 1.8.14-r1 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libx11.git
