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 |
|
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access