---
name: "XSelectInput"
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/XSelectInput/3x"
---

# XSelectInput(3x)

select input events

## NAME

XSelectInput - select input events

## SYNTAX

int XSelectInput(Display \**display*, Window *w*, long *event\_mask*);

## ARGUMENTS

- *display*

  Specifies the connection to the X server.

- *event\_mask*

  Specifies the event mask.

- *w*

  Specifies the window whose events you are interested in.

## DESCRIPTION

The *XSelectInput* function requests that the X server report the events associated with the  specified event mask. Initially, X will not report any of these events. Events are reported relative to a window. If a window is not interested in a device event, it usually propagates to the closest ancestor that is interested, unless the do\_not\_propagate mask prohibits it.

Setting the event-mask attribute of a window overrides any previous call for the same window but not for other clients. Multiple clients can select for the same events on the same window with the following restrictions:

- •

  Multiple clients can select events on the same window because their event masks are disjoint. When the X server generates an event, it reports it to all interested clients.

- •

  Only one client at a time can select *CirculateRequest*, *ConfigureRequest*, or *MapRequest* events, which are associated with the event mask *SubstructureRedirectMask*.

- •

  Only one client at a time can select a *ResizeRequest* event, which is associated with the event mask *ResizeRedirectMask*.

- •

  Only one client at a time can select a  *ButtonPress* event, which is associated with the event mask *ButtonPressMask*.

The server reports the event to all interested clients.

*XSelectInput* can generate a *BadWindow* error.

## DIAGNOSTICS

- *BadWindow*

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

## SEE ALSO

*Xlib - C Language X Interface*
