XReparentWindow man page
XReparentWindow — reparent windows
int XReparentWindow(Display *display, Window w, Window parent, int x, int y);
Specifies the connection to the X server.
Specifies the parent window.
Specifies the window.
Specify the x and y coordinatesof the position in the new parent window.
If the specified window is mapped, XReparentWindow automatically performs an UnmapWindow request on it, removes it from its current position in the hierarchy, and inserts it as the child of the specified parent. The window is placed in the stacking order on top with respect to sibling windows.
After reparenting the specified window, XReparentWindow causes the X server to generate a ReparentNotify event. The override_redirect member returned in this event is set to the window's corresponding attribute. Window manager clients usually should ignore this window if this member is set to True. Finally, if the specified window was originally mapped, the X server automatically performs a MapWindow request on it.
The X server performs normal exposure processing on formerly obscured windows. The X server might not generate Expose events for regions from the initial UnmapWindow request that are immediately obscured by the final MapWindow request. A BadMatch error results if:
- The new parent window is not on the same screen as the old parent window.
- The new parent window is the specified window or an inferior of the specified window.
- The new parent is InputOnly, and the window is not.
- The specified window has a ParentRelative background, and the new parent window is not the same depth as the specified window.
XReparentWindow can generate BadMatch and BadWindow errors.
A value for a Window argument does not name a defined Window.
Xlib - C Language X Interface