Skip to content

Fix screen edge detection for dock auto hide

Lewis Lakerink requested to merge lakerink/kwin:fix-screen-edges into master

Previously the screen edge detection for dock auto hide looked for any screen with dimensions more extreme than the screen with the edge being searched.

Consider a case with a triple screen layout where two screens are left<->right and one screen is below the left monitor. In this case the current code rejects the bottom monitor's right edge as a valid edge since the top right screen has a right edge more right. Because of this, 'client->showOnScreenEdge(); is triggered in ScreenEdges::createEdgeForClient() and so a dock on that edge configured to autohide never hides.

This MR leaves edges between screens with the original logic, so docks between screens don't hide. Screens with edges not against another screen are treated as valid screen edges, docks on those edges hide correctly now.

BUG: 441400

Edited by Lewis Lakerink

Merge request reports

Loading