Skip to content

RFC: Compute client area for windows on multiple desktops differently

Currently, if a window is on multiple desktops, the workspace will take the last virtual desktop and use it to get the client area.

On the other hand, kwin allows setting strut regions per virtual desktop

If two virtual desktops have different struts, some windows or even worse their titlebars can end up behind panels or docks.

With this change, Workspace::clientArea() will compute the client area on every desktop the window is on and take their intersection.


Other options:

  • Maintain geometry per virtual desktop: not feasible, requires changes in core wayland protocols and x11

  • Ignore struts if the window is not on all desktops. This is potentially an api breaking change

Edited by Vlad Zahorodnii

Merge request reports