8.3 Selecting Events

For each window, a client must select which event types it wants placed in its queue when they occur in that window. This is normally done with XSelectInput(), which sets the event_mask attribute of a window. The client need not select events on all of its windows, only those in which it wants to see the events that occur.

To select event types for a window, pass an event_mask as an argument to XSelectInput() or set the event_mask member of the XSetWindowAttributes structure and call XChangeWindowAttributes() or XCreateWindow(). (For more information on the XSetWindowAttributes structure, see 4.1 Setting Window Attributes.)

The event_mask is formed by combining the event mask symbols listed in the first column of Table 8-2 with the bitwise OR operator (|). Each mask symbol sets a bit in the event_mask.

Table 8-2 also describes briefly the circumstances under which you would want to specify each symbol. You will need to read about each mask in 8.3.3 Event Masks; see the examples using the events in Chapter 9, and throughout this manual; and look at the event structures in Appendix E, you will really understand when to use each of these symbols.

Table 8-2. Event Mask Definitions

Event Mask Symbol

Circumstances

NoEventMask

No events

KeyPressMask

Keyboard down events

KeyReleaseMask

Keyboard up events

ButtonPressMask

Pointer button down events

ButtonReleaseMask

Pointer button up events

EnterWindowMask

Pointer window entry events

LeaveWindowMask

Pointer window leave events

PointerMotionMask ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.