The XDestroyWindow function destroys the specified window as well as all of its subwindows and causes the
X server to generate a DestroyNotify event for each window. The window should never be referenced again.
If the window specified by the w argument is mapped, it is unmapped automatically. The ordering of the
DestroyNotify events is such that for any given window being destroyed, DestroyNotify is generated on any
inferiors of the window before being generated on the window itself. The ordering among siblings and
across subhierarchies is not otherwise constrained. If the window you specified is a root window, no
windows are destroyed. Destroying a mapped window will generate Expose events on other windows that were
obscured by the window being destroyed.
XDestroyWindow can generate a BadWindow error.
The XDestroySubwindows function destroys all inferior windows of the specified window, in bottom-to-top
stacking order. It causes the X server to generate a DestroyNotify event for each window. If any mapped
subwindows were actually destroyed, XDestroySubwindows causes the X server to generate Expose events on
the specified window. This is much more efficient than deleting many windows one at a time because much
of the work need be performed only once for all of the windows, rather than for each window. The
subwindows should never be referenced again.
XDestroySubwindows can generate a BadWindow error.