---
name: "XNextEvent"
section: "3x"
platform: "linux"
package: "libx11-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XNextEvent/3x"
---

# XNextEvent(3x)

select events by type

## NAME

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

## 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

- *display*

  Specifies the connection to the X server.

- *event\_mask*

  Specifies the event mask.

- *event\_return*

  Returns the matched event's associated structure.

- *event\_return*

  Returns the next event in the queue.

- *event\_return*

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

- *event\_type*

  Specifies the event type to be compared.

- *w*

  Specifies the window  whose event uou are interested in.

## 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

XAnyEvent(3X11), XIfEvent(3X11), XPutBackEvent(3X11), XSendEvent(3X11)\
 *Xlib - C Language X Interface*
