From d791b6e421c342bd6f358238f8e5c1f17eaf7afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Mon, 12 Mar 2012 03:05:35 +0100 Subject: [PATCH] fix restore size for shaded windows BUG: 243423 REVIEW: 104236 --- geometry.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 8af615ff1a..49ddd2953f 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -2172,20 +2172,25 @@ void Client::changeMaximize(bool vertical, bool horizontal, bool adjust) clientArea = workspace()->clientArea(MaximizeArea, this); // save sizes for restoring, if maximalizing + QSize sz; + if (isShade()) + sz = sizeForClientSize(clientSize()); + else + sz = size(); if (!adjust && !(old_mode & MaximizeVertical)) { geom_restore.setTop(y()); - geom_restore.setHeight(height()); + geom_restore.setHeight(sz.height()); // we can fall from maximize to tiled // TODO unify quicktiling and regular maximization geom_pretile.setTop(y()); - geom_pretile.setHeight(height()); + geom_pretile.setHeight(sz.height()); } if (!adjust && !(old_mode & MaximizeHorizontal)) { geom_restore.setLeft(x()); - geom_restore.setWidth(width()); + geom_restore.setWidth(sz.width()); // see above geom_pretile.setLeft(x()); - geom_pretile.setWidth(width()); + geom_pretile.setWidth(sz.width()); } if (options->borderlessMaximizedWindows()) {