placement: apply cascade-if-covering to placement modes: random, centered, zero-cornered, under mouse

This commit is contained in:
Natalie Clarius 2022-11-25 00:25:03 +01:00
parent 274922caaf
commit b08ef54727

View file

@ -142,6 +142,7 @@ void Placement::placeAtRandom(Window *c, const QRect &area, PlacementPolicy /*ne
py = area.y(); py = area.y();
} }
c->move(QPoint(tx, ty)); c->move(QPoint(tx, ty));
cascadeIfCovering(c, area);
} }
static inline bool isIrrelevant(const Window *window, const Window *regarding, VirtualDesktop *desktop) static inline bool isIrrelevant(const Window *window, const Window *regarding, VirtualDesktop *desktop)
@ -445,6 +446,7 @@ void Placement::placeCentered(Window *c, const QRectF &area, PlacementPolicy /*n
// place the window // place the window
c->move(QPoint(xp, yp)); c->move(QPoint(xp, yp));
cascadeIfCovering(c, area);
} }
/** /**
@ -456,6 +458,7 @@ void Placement::placeZeroCornered(Window *c, const QRect &area, PlacementPolicy
// get the maximum allowed windows space and desk's origin // get the maximum allowed windows space and desk's origin
c->move(area.topLeft()); c->move(area.topLeft());
cascadeIfCovering(c, area);
} }
void Placement::placeUtility(Window *c, const QRect &area, PlacementPolicy /*next*/) void Placement::placeUtility(Window *c, const QRect &area, PlacementPolicy /*next*/)
@ -509,6 +512,7 @@ void Placement::placeUnderMouse(Window *c, const QRect &area, PlacementPolicy /*
geom.moveCenter(Cursors::self()->mouse()->pos()); geom.moveCenter(Cursors::self()->mouse()->pos());
c->move(geom.topLeft().toPoint()); c->move(geom.topLeft().toPoint());
c->keepInArea(area); // make sure it's kept inside workarea c->keepInArea(area); // make sure it's kept inside workarea
cascadeIfCovering(c, area);
} }
void Placement::placeOnMainWindow(Window *c, const QRect &area, PlacementPolicy nextPlacement) void Placement::placeOnMainWindow(Window *c, const QRect &area, PlacementPolicy nextPlacement)