10.5.1 Pointer Button Events

The following describes the event processing that occurs when a pointer button press is processed with the pointer in some window w and when no active pointer grab is in progress.

The X server searches the ancestors of w from the root down, looking for a passive grab to activate. If no matching passive grab on the button exists, the X server automatically starts an active grab for the client receiving the event and sets the last-pointer-grab time to the current server time. The effect is essentially equivalent to an XGrabButton() with these client passed arguments:

Argument Value

w The event window
event_mask The client's selected pointer events on the event window
pointer_mode GrabModeAsync
keyboard_mode GrabModeAsync
owner_events True, on the event window, otherwise False
confine_to None
cursor None

The active grab is automatically terminated when the logical state of the pointer has all buttons released. Clients can modify the active grab by calling XUngrabPointer() and XChangeActivePointerGrab().

Next: Keyboard and Pointer Events

Christophe Tronche, ch@tronche.com