Fix the ignore struts multi-screen handling
ClosedPublic

Authored by graesslin on Jun 2 2016, 8:59 AM.

Details

Summary

The checks in Client::adjustedClientArea were a little bit too
agressive, excluding also valid setups.

This change addresses the regression by keeping the actual intended
improvements in place.

The check in Client::adjustedClientArea is now only done for the
special case of desktopArea == area. This ensures that a strut excluding
a complete screen won't affect the overall workarea.

In addition new checks are introduced in Workspace::updateClientArea.
When calculating the new sareas a check is performed whether the
intersection with the adjustedClientArea would result in the sarea
becoming empty (thus a screen being completely removed). If that's the
case the geometry is ignored to not exclude a complete screen.

Interestingly I should have noticed that something with the logic is
odd. As the test case had two commented geometries which we now get.

BUG: 363804

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 4156.Jun 2 2016, 8:59 AM
graesslin retitled this revision from to Fix the ignore struts multi-screen handling.
graesslin updated this object.
graesslin edited the test plan for this revision. (Show Details)
graesslin added reviewers: Plasma, apol, lbeltrame.
Restricted Application added a project: Plasma. · View Herald TranscriptJun 2 2016, 8:59 AM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
lbeltrame edited edge metadata.Jun 2 2016, 9:16 AM

+1 on the idea, although I won't be able to test until Monday. If anyone else can, that'd be great. ;)

graesslin updated this revision to Diff 4165.Jun 2 2016, 2:41 PM
graesslin edited edge metadata.

Move the check from Client::adjustedClientArea to Workspace::updateClientArea to not have special case handling there

apol edited edge metadata.Jun 10 2016, 11:28 AM

I just tested the patch, the issue isn't solved here.

In D1744#33668, @apol wrote:

I just tested the patch, the issue isn't solved here.

can you please xprop the panel and provide the xrandr. I just want to be sure that you are not hitting a similar problem like @lbeltrame whose panel had an incorrect strut value in addition.

This revision was automatically updated to reflect the committed changes.