Map windows using
XMapWindow(display,w) XMapSubwindows(display,w) XUnmapWindow(display,w) XUnmapSubwindows(display,w)There are also a few fairly self-explanatory calls which can be used to move the windows around and shuffle them to the top and bottom of the pile like papers on a desk. The window manager may well interfere with your intentions, though - it's up to the user where top-level windows are, and which is on top.
XChangeWindowAttributes(display,w,valuemask,attributes)
XSetWindowAttributes *attributes;
XConfigureWindow(display,w, x, y, valuemask, values)
unsigned int valuemask /* to select relevant fields of value */
XWindowChanges *values; /* contains new details */
XResizeWindow(display,w,width,height);
XMoveResizeWindow(display,w,x,y,width,height);
XSetWindowBorderWidth(display,w,width);
XRaiseWindow(display,w) /* raise the window to the front */
XLowerWindow(display,w) /* lower window to the back */
XMoveWindow(display,w, x, y) /* move and raise w */
XCirculateSubwindows(display,w,direction);
/* direction is RaiseLowest or LowerHighest*/
XCirculateSubwindowsUp(display,w) /* raises the lowest mapped child */
XCirculateSubwindowsDown(display,w) /* lowers the highest mapped child*/