In addition to having an ordinal position, all windows have a priority, which is 0 by default. A window's priority can be changed in order to allow it to override the normal z-order determined by ordinal position. Although this can be done for any type of window, in practice it is generally only window groups that have their priorities changed, and this is normally carried out by special applications such as the shell.
Variant: Both (ScreenPlay and non-ScreenPlay). Target audience: Application developers.
The ordinal position of a window only applies within the set of windows that have the same priority as that window. If a window group is given a priority higher than other window groups, it is positioned in front of all windows of lower priority, regardless of their ordinal positions. If a window group is given a priority of 1, for example, and all other window groups have a priority of 0, it is moved to the foreground and all other window are prevented from overlapping it or from getting the keyboard focus (unless it has disabled receipt of keyboard focus).
Similarly, if a window group is given a priority of –1, and all other window groups have a priority of 0, it does not get keyboard focus or move to the front of any other window group, whatever its ordinal position is set to. Such a setting might, for example, be used for a background "wallpaper" application.
The full ordinal position of a window group is its ordinal position, taking into account window groups of other priorities. For example, if window group A has priority 0 and ordinal position 0, but window group B has a priority of 1, then window group A’s full ordinal position is 1, not 0.
Full ordinal position is usually only meaningful for window groups, although it also exists for other windows. Other windows are typically not given different priorities. Consequently their ordinal positions and full ordinal positions are usually the same.