store restore size /before/ removing the decoration for BorderlessMaximized (lead to window resizes on unmaximization)
BUG: 295449 REVIEW: 104185
This commit is contained in:
parent
dbea548a43
commit
0aefd56e0f
1 changed files with 10 additions and 8 deletions
18
geometry.cpp
18
geometry.cpp
|
@ -2133,6 +2133,8 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
|
||||||
{
|
{
|
||||||
if (changeMaximizeRecursion)
|
if (changeMaximizeRecursion)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// sic! codeblock for TemporaryAssign
|
||||||
{
|
{
|
||||||
// isMovable() and isResizable() may be false for maximized windows
|
// isMovable() and isResizable() may be false for maximized windows
|
||||||
// with moving/resizing maximized windows disabled
|
// with moving/resizing maximized windows disabled
|
||||||
|
@ -2169,14 +2171,6 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
|
||||||
else
|
else
|
||||||
clientArea = workspace()->clientArea(MaximizeArea, this);
|
clientArea = workspace()->clientArea(MaximizeArea, this);
|
||||||
|
|
||||||
if (options->borderlessMaximizedWindows()) {
|
|
||||||
// triggers a maximize change.
|
|
||||||
// The next setNoBorder interation will exit since there's no change but the first recursion pullutes the restore/pretile geometry
|
|
||||||
changeMaximizeRecursion = true;
|
|
||||||
setNoBorder(app_noborder || max_mode == MaximizeFull);
|
|
||||||
changeMaximizeRecursion = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// save sizes for restoring, if maximalizing
|
// save sizes for restoring, if maximalizing
|
||||||
if (!adjust && !(old_mode & MaximizeVertical)) {
|
if (!adjust && !(old_mode & MaximizeVertical)) {
|
||||||
geom_restore.setTop(y());
|
geom_restore.setTop(y());
|
||||||
|
@ -2194,6 +2188,14 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust)
|
||||||
geom_pretile.setWidth(width());
|
geom_pretile.setWidth(width());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options->borderlessMaximizedWindows()) {
|
||||||
|
// triggers a maximize change.
|
||||||
|
// The next setNoBorder interation will exit since there's no change but the first recursion pullutes the restore/pretile geometry
|
||||||
|
changeMaximizeRecursion = true;
|
||||||
|
setNoBorder(app_noborder || max_mode == MaximizeFull);
|
||||||
|
changeMaximizeRecursion = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!adjust) {
|
if (!adjust) {
|
||||||
if ((vertical && !(old_mode & MaximizeVertical))
|
if ((vertical && !(old_mode & MaximizeVertical))
|
||||||
|| (horizontal && !(old_mode & MaximizeHorizontal)))
|
|| (horizontal && !(old_mode & MaximizeHorizontal)))
|
||||||
|
|
Loading…
Reference in a new issue