determine screenArea by geom_restore in checkWSP

checkWorkspacePosition() operates on geom_restore
to preserve window positions on temporary
(without moving/resizing the window by the user)
screen layout/geometry changes.

Therefore, in the multiscreen case the
screenbound check must be done towards
the screen the window *would* be on
according to geom_restore, not the one
it is right now.

CCBUG: 161325
REVIEW: 121320
FIXED-IN: 5.2
icc-effect-5.14.5
Thomas Lübking 2015-01-08 00:09:11 +01:00
parent 38eb260478
commit 8de4e4d84e
1 changed files with 1 additions and 1 deletions

View File

@ -1101,7 +1101,7 @@ void Client::checkWorkspacePosition(QRect oldGeometry, int oldDesktop)
int oldRightMax = oldScreenArea.x() + oldScreenArea.width();
int oldBottomMax = oldScreenArea.y() + oldScreenArea.height();
int oldLeftMax = oldScreenArea.x();
const QRect screenArea = workspace()->clientArea(ScreenArea, this);
const QRect screenArea = workspace()->clientArea(ScreenArea, geom_restore.center(), desktop());
int topMax = screenArea.y();
int rightMax = screenArea.x() + screenArea.width();
int bottomMax = screenArea.y() + screenArea.height();