Projects/KWin/Window Decoration Policy

From KDE TechBase
< Projects‎ | KWin
Revision as of 19:18, 25 August 2011 by Mgraesslin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Window Decoration Policy

The EWMH specification is very bogus about when a window should be decorated. This means that there is no existing policy when a window will be decorated by the window manager and when not. This document fixes this lack for the KDE Plasma Desktop workspace by clearly defining when a window is decorated. This policy applies since version 4.8.

Windows With Decorations

In general all windows managed (windows without override-redirect) by the Window Manager (KWin) are re-parented into a Server-Side Decoration unless:

  • The window has _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_DESKTOP
  • The window has _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_DOCK
  • The window has _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_SPLASH
  • The window belongs to the Desktop Shell
  • The window has _NET_WM_STATE _NET_WM_STATE_ABOVE and has set an own XShape
  • The window is a "Qt Dock Widget"

Why?

The KDE Plasma Workspaces guarantee a consistent look and feel for all windows. We want to provide the best possible user experience for each of our workspaces. We have different policies regarding when the server side decoration is shown for the different form factors. We don't want that the application developers have to adjust their application to work correctly on form factor desktop, netbook and tablet. Only by enforcing Server-Side decorations the workspaces can ensure that the correct user experience is implemented on each form factor.

My Application Looks Wrong

Even with Server-Side decoration it is possible to influence the look and feel of the decoration. Please get in touch with either the KWin or Oxygen developers for help.

I have an awesome idea and cannot implement it

Imagine each application would have an awesome idea how to handle window management. This would result in a setup where each window is different and broken. Innovation is important and we don't want to stop innovation. But innovation has to be done correctly. This means the workspace has to innovate how windows behave. Please get in touch with the KWin, Plasma and Oxygen developers and explain what you want to achieve. We can help you.

More Information On Client-Side Window Decorations