Fix the strut handling for wayland clients
ClosedPublic

Authored by graesslin on Jun 9 2016, 8:10 AM.

Details

Summary

The implementation was broken as it transformed the QRects into QRegions,
subtracted the geometries and took the bounding rect again. In several
setups this could result in the strut getting ignored.

This change improves the calculation of the struts by creating a QMargin
which describes the area which needs to be subtracted from a screen rect.
The QMargin is only adjusted for the edge the window borders. We can
assume that a window with a strut needs to border a screen on Wayland.

With this change we are also able to support panels between screens.
On Wayland a panel placed on the right of a left screen affects the
maximization area of the left screen, but does not affect the overall
workarea.

CCBUG: 167852

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
graesslin updated this revision to Diff 4299.Jun 9 2016, 8:10 AM
graesslin retitled this revision from to Fix the strut handling for wayland clients.
graesslin updated this object.
graesslin edited the test plan for this revision. (Show Details)
graesslin added reviewers: Plasma on Wayland, KWin.
Restricted Application added projects: Plasma on Wayland, KWin. · View Herald TranscriptJun 9 2016, 8:10 AM
Restricted Application added subscribers: kwin, plasma-devel. · View Herald Transcript
bshah added a subscriber: bshah.Jun 10 2016, 9:57 AM

Sounds sane, but not completely confident to Accept it.

This revision was automatically updated to reflect the committed changes.