1. The window is mapped with `XMapWindow` or related routines.

2. All its ancestors must be mapped. This condition is always satisfied for the children of the root window, the top-level windows of each application.

3. The window must not be obscured by visible sibling windows or their ancestors this depends on the stacking order. When first mapped, a window appears on top of its siblings, which will be on top of all windows if its parent is the root window.