A window group is the basic unit of an application.
Variant: Both (ScreenPlay and non-ScreenPlay). Target audience: Application developers.
The main functions of a window group are:
To receive keyboard focus—unless captured, all key events are sent to the window group that has keyboard focus.
The application that has keyboard focus is known as the "foreground application". The Window Server gives the foreground application’s thread extra priority, so that it is responsive to the user, even if a background application is performing a long-running task.
To control settings for priority keys and key capture.
To have an associated name that can be interrogated by other Window Server clients and used to determine which applications are running.
To have a text cursor. The text cursor is displayed only for the application with keyboard focus.
To form a group for all other windows owned by an application.
A typical application has a single window group, and all its other windows are descendants of that window group. A system shell application may use the RWsSession interface to interrogate all window groups owned by all client applications, and therefore may display a task list. All applications should use the same policy for the format of the window group name. This policy is the responsibility of the GUI, not the Window Server itself.
An RWindowGroup is a pseudo-window that can never be seen on screen, but which has an ordinal position and participates in parent/child and sibling relationships as all other windows.