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 |
|---|---|
| No events |
| Keyboard down events |
| Keyboard up events |
| Pointer button down events |
| Pointer button up events |
| Pointer window entry events |
| Pointer window leave events |
|