16.3 Reparenting
A window manager can decorate windows on the screen with titlebars and place little boxes on the titlebar with which the window can be moved or resized. This is only one possibility, modeled on the user interface on the Macintosh™.
To do this, the window manager creates a child of the root
somewhat larger than the top-level window of the application. Then it
calls XReparentWindow()
, specifying the top-level
window of the application as win
and the new
parent as parent
.
win
and all its descendants will then be
descendants of parent
.
In the area where the new parent is visible around the top-level window of the application, the window manager can put anything it wants. This could include text, graphics, and small windows which perform certain functions when a button is clicked in them.
The window manager can decorate all top-level windows, but it will
normally ignore windows that are mapped with their
override_redirect
attribute set, since no
*Request
events will be generated for them. The
window manager may also decorate differently windows that have set the
XA_WM_TRANSIENT_FOR
property and apply its window
layout policy to them. The window manager calls
XGetTransientForHint()
for each window to get this
property.
By the way, it is impossible (except by luck) for the window manager to match the colors of the decoration to the colors of the window it is decorating. A window manager cannot find out what colors a window uses for its border or background because these window ...
Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.