allow to force moveResize and use on applyState

applyState also requires some updates implied by moveResize, notably the
reconfigure, the setBackground on the window etcetc.
Instead of testing what'd be missing from a moveResize, we just force
the latter to apply even when seeming unrequired.

This has notable impact when switching fullscreen state for a window
with fullscreen dimensions.

BUG: 992
This commit is contained in:
Thomas Lübking 2016-07-23 23:59:22 +02:00 committed by Mathias Gumz
parent baaf477d46
commit 4bc08709f1
2 changed files with 5 additions and 5 deletions

View file

@ -272,11 +272,11 @@ void FbWinFrame::resizeForClient(unsigned int width, unsigned int height,
moveResizeForClient(0, 0, width, height, win_gravity, client_bw, false, true);
}
void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int height, bool move, bool resize) {
if (move && x == window().x() && y == window().y())
void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int height, bool move, bool resize, bool force) {
if (!force && move && x == window().x() && y == window().y())
move = false;
if (resize && width == FbWinFrame::width() &&
if (!force && resize && width == FbWinFrame::width() &&
height == FbWinFrame::height())
resize = false;
@ -504,7 +504,7 @@ void FbWinFrame::applyState() {
new_h = m_screen.getHeadHeight(head);
}
moveResize(new_x, new_y, new_w, new_h);
moveResize(new_x, new_y, new_w, new_h, true, true, true);
frameExtentSig().emit();
}

View file

@ -92,7 +92,7 @@ public:
// can elect to ignore move or resize (mainly for use of move/resize individual functions
void moveResize(int x, int y,
unsigned int width, unsigned int height,
bool move = true, bool resize = true);
bool move = true, bool resize = true, bool force = false);
// move without transparency or special effects (generally when dragging)
void quietMoveResize(int x, int y,