Next: , Previous: , Up: Windows and Pixmaps   [Contents][Index]


5.5 Window Hierarchy

All the windows in X are arranged in a strict hierarchy. At the top of the hierarchy are the root windows, which cover the display screens. Each root window is partially or completely covered by its child windows. All windows, except for root windows, have parents. Child windows can have their own children. In this way, a tree of arbitrary depth on each screen can be created. CLX provides several functions for examining and modifying the window hierarchy.

Function: drawable-root drawable
drawable

A drawable.

Returns the root window of the specified drawable.

root-window

Type window.

Function: query-tree window &key (:result-type `list)
window

A window.

:result-type

A valid type specifier for a sub-type of sequence. The default is a list.

Returns the children windows, the parent window, and the root window for the specified window. The children are returned as a sequence of windows in current stacking order, from bottom-most (first) to top-most (last). The :result-type specifies the type of children sequence returned.

children

Type sequence of window.

parent

Type window or null.

root

Type window.

Function: reparent-window window parent x y
window

A window.

parent

The new parent window.

x
y

The position (type int16) of the window in its new parent. These coordinates are relative to the parent’s origin, and specify the new position of the upper, left, outer corner of the window.

Changes a window’s parent within a single screen. There is no way to move a window between screens.

The specified window is reparented by inserting it as a child of the specified parent. If the window is mapped, an unmap-window operation is automatically performed on the specified window. The window is then removed from its current position in the hierarchy and inserted as the child of the specified parent. The window is placed on top in the stacking order with respect to sibling windows.

After reparenting the specified window, a :reparent-notify event is generated. The override-redirect attribute of the window is passed on in this event. Window manager clients normally should ignore this event if this attribute is :on. See Events and Input, for more information on :reparent-notify event processing. Finally, if the specified window was originally mapped, a map-window operation is automatically performed on it.

The X server performs normal exposure processing on formerly obscured windows. It might not generate :exposure events for regions from the initial unmap-window operation if they are immediately obscured by the final map-window operation.

It is an error if any of the following are true:

Function: translate-coordinates source source-x source-y destination
source

A window defining the source coordinate system.

source-x
source-y

Coordinates (int16) relative to the origin of the source window.

destination

A window defining the destination coordinate system.

Returns the position defined by source-x and source-y (relative to the origin of the source window), expressed as coordinates (two int16 values) relative to the origin of the destination window.

destination-x

Type int16 or null.

destination-y

Type int16 or null.

destination-child

Type window or null.


Next: , Previous: , Up: Windows and Pixmaps   [Contents][Index]