Clients receive information asynchronously via events. These events can be either asynchronously generated from devices, or generated as side effects of client requests. Events are grouped into types; events are never sent to a client by the server unless the client has specifically asked to be informed of that type of event, but clients can force events to be sent to other clients. Events are typically reported relative to a window.
event compression
Ignoring (or compressing) certain redundant input events. Compression of redundant events is controlled by the class slots compress-exposures and compress-motion, which are shared by all instances of a contact class.
event loop
The fundamental application control structure: wait for an event, figure out how to handle it, process the event, then go back and wait for the next one. In CLUE, the event loop is implemented using the process-next-event function.
event mask
Events are requested relative to a window. The set of event types a client requests relative to a window are described using an event mask.
event propagation
Device-related events propagate from the source window to ancestor windows until some client has expressed interest in handling that type of event, or until the event is discarded explicitly.
event specification
A notation for describing a certain sort of event. CLUE input processing consists of matching an event with an event specification found in a contact's event-translations slot and then calling actions associated with the matching event specification.
event synchronization
Certain race conditions are possible when demultiplexing device events to clients (in particular deciding where pointer and keyboard events should be sent when in the middle of window management operations). The event synchronization mechanism allows synchronous processing of device events.
event source
The smallest window containing the pointer is the source of a device related event.
event translation
The process of determining which contact action functions will be executed. An event translation is a list found in a contact's event-translations slot associating an event specification with one or more action names. Also see class event translations.
exposure event
Servers do not guarantee to preserve the contents of windows when windows are obscured or reconfigured. Exposure events are sent to clients to inform them when contents of regions of windows have been lost.
Named extensions to the core protocol can be defined to extend the system. Extension to output requests, resources, and event types are all possible, and expected.