2.5 Introduction to Events

This section provides a brief introduction to events. You will need this knowledge to fully understand Chapter 3, and some of the window attributes described in Chapter 4. Events are covered completely in Chapter 8, and Chapter 9.

2.5.1 What is an Event?

Moving the pointer or pressing a keyboard key causes an input event to occur. These are two of the simplest and most common event types, but there are many others. An event is a packet of information that is generated by the server when certain actions occur and is queued for later use by the client. The queued events can be read at any subsequent time in any order, but they are usually read and processed in the order in which they occurred.

Here are some other sorts of events:

  • Mouse (or other pointer) button pressed or released. (ButtonPress, ButtonRelease)

  • Window mapped or unmapped. (MapNotify, UnmapNotify)

  • Mouse crossing a window boundary. (EnterNotify, LeaveNotify)

These event types are usually used for user input and to control a user interface.

A second group of events reports side effects of window operations. For example, when a window becomes visible after being obscured, it receives an Expose event. When window gravity (a window attribute that controls the position of a window when the parent is resized) takes effect, a GravityNotify event is generated.

A third purpose of events is to allow various clients to communicate with each other and with the window manager. The events that report the following ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.