The window handler component has an event processing module to handle events passed by the desktop component, a draw module, and a menu module.
A window has three visible regions: content, borders, and widgets. Upon receiving an event from the desktop component, the window handler either propagates them to the content handler for processing or handles them by itself for events such as window border drag, menu selection, and widget click events, etc. These events typically result in a window operation such as resize, open, and close window. A window operation initiated by the window handler uses and updates information in the window hierarchy cache. Upon completion of the window operation, the display module of the desktop is signaled for a screen update, by passing the highest level window affected by the operation.
The window handler also deals with the drawing of window decorations such as window borders and widgets. The draw module of the content is handled by the content handler. Window borders and widgets, as part of the decoration of the window, are handled by appropriate draw modules within the window handler.
Window menu operations such as maximize, pack, reorganize, etc. are also handled by this component, simply by making calls to appropriate functions.