The Symbian OS window server is used by all applications which have a user interface. The primary user input for these applications comes from the keyboard and pointer, and their primary user-visible output is to the screen. These input and output devices are shared between all applications on the system. Each client thread opens a session to the server, and issues requests for service.
Window Server
The window server controls access by many client applications, to the machine’s screen, keyboard and pointer.
The window server thread runs at a higher priority than any application; only the kernel runs at a higher priority. Therefore, all applications' requests for screen updates, and all handling of machine events such as pointers and keys, are handled at higher priority than any individual application.
Each client application runs in its own thread. The window server presents an interface to each client application that enables each client application to run without direct interaction with the other applications on the machine. Drawing is clipped to the visible area of the application’s windows, pointer events are only received if related to the application’s windows, and keyboard events are only given to an application whose window group has focus or to one that has captured them. A client application may ignore the majority of events relating to other applications, it won't even be told about most of them.
Each client application communicates with the window server using a window server session, or other object created from the session. The application waits to receive events by setting up one or more active objects. Events include user input, requests that windows be redrawn, and others. Applications may create systems of windows and draw to them.