diff options
author | Thomas Lübking <thomas.luebking@gmail.com> | 2016-07-23 21:59:22 (GMT) |
---|---|---|
committer | Mathias Gumz <akira@fluxbox.org> | 2016-07-30 09:22:24 (GMT) |
commit | 4bc08709f196e513914e453e2a1117c0823d0a41 (patch) | |
tree | becf525ee9e7b11f96403e9e55f6934fab467d06 | |
parent | baaf477d46e619127b91faf59be2cf2c2c95afff (diff) | |
download | fluxbox-4bc08709f196e513914e453e2a1117c0823d0a41.zip fluxbox-4bc08709f196e513914e453e2a1117c0823d0a41.tar.bz2 |
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
-rw-r--r-- | src/FbWinFrame.cc | 8 | ||||
-rw-r--r-- | src/FbWinFrame.hh | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc index 42b81e7..21f174b 100644 --- a/src/FbWinFrame.cc +++ b/src/FbWinFrame.cc | |||
@@ -272,11 +272,11 @@ void FbWinFrame::resizeForClient(unsigned int width, unsigned int height, | |||
272 | moveResizeForClient(0, 0, width, height, win_gravity, client_bw, false, true); | 272 | moveResizeForClient(0, 0, width, height, win_gravity, client_bw, false, true); |
273 | } | 273 | } |
274 | 274 | ||
275 | void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int height, bool move, bool resize) { | 275 | void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int height, bool move, bool resize, bool force) { |
276 | if (move && x == window().x() && y == window().y()) | 276 | if (!force && move && x == window().x() && y == window().y()) |
277 | move = false; | 277 | move = false; |
278 | 278 | ||
279 | if (resize && width == FbWinFrame::width() && | 279 | if (!force && resize && width == FbWinFrame::width() && |
280 | height == FbWinFrame::height()) | 280 | height == FbWinFrame::height()) |
281 | resize = false; | 281 | resize = false; |
282 | 282 | ||
@@ -504,7 +504,7 @@ void FbWinFrame::applyState() { | |||
504 | new_h = m_screen.getHeadHeight(head); | 504 | new_h = m_screen.getHeadHeight(head); |
505 | } | 505 | } |
506 | 506 | ||
507 | moveResize(new_x, new_y, new_w, new_h); | 507 | moveResize(new_x, new_y, new_w, new_h, true, true, true); |
508 | frameExtentSig().emit(); | 508 | frameExtentSig().emit(); |
509 | } | 509 | } |
510 | 510 | ||
diff --git a/src/FbWinFrame.hh b/src/FbWinFrame.hh index f8961c8..617b9b9 100644 --- a/src/FbWinFrame.hh +++ b/src/FbWinFrame.hh | |||
@@ -92,7 +92,7 @@ public: | |||
92 | // can elect to ignore move or resize (mainly for use of move/resize individual functions | 92 | // can elect to ignore move or resize (mainly for use of move/resize individual functions |
93 | void moveResize(int x, int y, | 93 | void moveResize(int x, int y, |
94 | unsigned int width, unsigned int height, | 94 | unsigned int width, unsigned int height, |
95 | bool move = true, bool resize = true); | 95 | bool move = true, bool resize = true, bool force = false); |
96 | 96 | ||
97 | // move without transparency or special effects (generally when dragging) | 97 | // move without transparency or special effects (generally when dragging) |
98 | void quietMoveResize(int x, int y, | 98 | void quietMoveResize(int x, int y, |