placement: don't overwrite scheduled position change in cascadeIfCovering

As it used the frame geometry, the check for covering windows was sometimes wrong,
and additionally overwrite changes to the window position Placement had made before,
which could end up with the window origin wrongly not being put inside of the screen
in some cases.

CCBUG: 489500
This commit is contained in:
Xaver Hugl 2024-07-22 23:37:28 +02:00
parent 02fbeeae78
commit 0e25405151

View file

@ -591,7 +591,7 @@ void Placement::cascadeIfCovering(Window *window, const QRectF &area)
VirtualDesktop *const desktop = window->isOnCurrentDesktop() ? VirtualDesktopManager::self()->currentDesktop() : window->desktops().front();
QRectF possibleGeo = window->frameGeometry();
QRectF possibleGeo = window->moveResizeGeometry();
bool noOverlap = false;
// cascade until confirmed no total overlap or not enough space to cascade