XReparentWindow() - reparent windows
XReparentWindow (Display *display, Window w, Window parent,
int x, int y)
If the specified window is mapped, XReparentWindow(3) 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(3) 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:
XReparentWindow(3) can generate BadMatch and BadWindow errors.
Xlib