16.2 Substructure Redirection
The window manager enforces its window layout policy using
substructure redirection. When the window manager selects
SubstructureRedirectMask on the root window, an
attempt by any other client to change the configuration of any child of
the root window will fail. Instead an event describing the layout change
request will be sent to the window manager. The window manager then
reads the event and determines whether to honor the request, modify it,
or deny it completely. If it decides to honor the request, it calls the
routine that the client called that triggered the event with the same
arguments. If it decides to modify the request, it calls the same
routine but with modified arguments.
The structure, as the term is used here, is the location, size, stacking order, border width, and mapping status of a window. The substructure is all these statistics about the children of a particular window. This is the complete set of information about screen layout that the window manager might need in order to implement its policy. Redirection means that an event is sent to the client selecting redirection (usually the window manager), and the original structure-changing request is not executed.
The events that are selected by
SubstructureRedirectMask and the routines that are
intercepted are as follows:
CirculateRequestevents report when an Xlib function, such asXCirculateSubwindows(),XCirculateSubwindowsDown(),XCirculateSubwindowsUp(), orXRestackWindows(), is ...
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