// changing its gravity
if (frame && _gravity != oldgravity) {
// move our idea of the client's position based on its new gravity
- int x, y;
+ int x = frame->rect().x(), y = frame->rect().y();
frame->frameGravity(x, y);
_area.setPos(x, y);
}
}
-void Client::move(int x, int y)
+void Client::move(int x, int y, bool framepos)
{
if (!(_functions & Func_Move)) return;
+ if (framepos)
+ frame->frameGravity(x, y);
internal_move(x, y);
}
_gravity = StaticGravity;
// adjust our idea of position based on StaticGravity, so we stay put
// unless asked
+ x = frame->rect().x();
+ y = frame->rect().y();
frame->frameGravity(x, y);
if (savearea) {
if (max) {
// because of my little gravity trick in here, we have to set the position
// of the client to what it really is
- int x, y;
+ int x = frame->rect().x(), y = frame->rect().y();
frame->frameGravity(x, y);
_area.setPos(x, y);
}