save geom_restore before calling for border update
otherwise the stored geometry would be correct for maximized borders, thus the unmaximized borders make the window to small on unmaximizing BUG: 343691 FIXED-IN: 5.2.1 REVIEW: 122416icc-effect-5.14.5
parent
fa1368cb9e
commit
92aa2fb553
32
geometry.cpp
32
geometry.cpp
|
@ -2202,22 +2202,6 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
|
||||||
changeMaximize(false, false, false); // restore
|
changeMaximize(false, false, false); // restore
|
||||||
}
|
}
|
||||||
|
|
||||||
// call into decoration update borders
|
|
||||||
if (m_decoration && m_decoration->client() && !(options->borderlessMaximizedWindows() && max_mode == KWin::MaximizeFull)) {
|
|
||||||
changeMaximizeRecursion = true;
|
|
||||||
const auto c = m_decoration->client().data();
|
|
||||||
if ((max_mode & MaximizeVertical) != (old_mode & MaximizeVertical)) {
|
|
||||||
emit c->maximizedVerticallyChanged(max_mode & MaximizeVertical);
|
|
||||||
}
|
|
||||||
if ((max_mode & MaximizeHorizontal) != (old_mode & MaximizeHorizontal)) {
|
|
||||||
emit c->maximizedHorizontallyChanged(max_mode & MaximizeHorizontal);
|
|
||||||
}
|
|
||||||
if ((max_mode == MaximizeFull) != (old_mode == MaximizeFull)) {
|
|
||||||
emit c->maximizedChanged(max_mode & MaximizeFull);
|
|
||||||
}
|
|
||||||
changeMaximizeRecursion = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// save sizes for restoring, if maximalizing
|
// save sizes for restoring, if maximalizing
|
||||||
QSize sz;
|
QSize sz;
|
||||||
if (isShade())
|
if (isShade())
|
||||||
|
@ -2236,6 +2220,22 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// call into decoration update borders
|
||||||
|
if (m_decoration && m_decoration->client() && !(options->borderlessMaximizedWindows() && max_mode == KWin::MaximizeFull)) {
|
||||||
|
changeMaximizeRecursion = true;
|
||||||
|
const auto c = m_decoration->client().data();
|
||||||
|
if ((max_mode & MaximizeVertical) != (old_mode & MaximizeVertical)) {
|
||||||
|
emit c->maximizedVerticallyChanged(max_mode & MaximizeVertical);
|
||||||
|
}
|
||||||
|
if ((max_mode & MaximizeHorizontal) != (old_mode & MaximizeHorizontal)) {
|
||||||
|
emit c->maximizedHorizontallyChanged(max_mode & MaximizeHorizontal);
|
||||||
|
}
|
||||||
|
if ((max_mode == MaximizeFull) != (old_mode == MaximizeFull)) {
|
||||||
|
emit c->maximizedChanged(max_mode & MaximizeFull);
|
||||||
|
}
|
||||||
|
changeMaximizeRecursion = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (options->borderlessMaximizedWindows()) {
|
if (options->borderlessMaximizedWindows()) {
|
||||||
// triggers a maximize change.
|
// triggers a maximize change.
|
||||||
// The next setNoBorder interation will exit since there's no change but the first recursion pullutes the restore geometry
|
// The next setNoBorder interation will exit since there's no change but the first recursion pullutes the restore geometry
|
||||||
|
|
Loading…
Reference in New Issue