From 346bcc30d343c4d8cb7a1ba8abbdc553cad786f1 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Fri, 22 Jan 2010 02:50:33 +0000 Subject: [PATCH] Force update of decoration pixmap in setGeometry when maximize state is changed even if the size is not, to handle changes in decoration pixelMetrics right. BUG: 223060 svn path=/trunk/KDE/kdebase/workspace/; revision=1078325 --- geometry.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 1e1729ca3b..59bfaa8f42 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -2015,11 +2015,20 @@ void Client::setGeometry( int x, int y, int w, int h, ForceGeometry_t force ) // SELI TODO won't this be too expensive? sendSyntheticConfigureNotify(); updateWindowRules(); + + // keep track of old maximize mode + // to detect changes + MaximizeMode old_mode( max_mode ); checkMaximizeGeometry(); workspace()->checkActiveScreen( this ); workspace()->updateStackingOrder(); workspace()->checkUnredirect(); - if( resized ) + + // need to regenerate decoration pixmaps when either + // - size is changed + // - maximize mode is changed to MaximizeRestore, when size unchanged + // which can happen when untabbing maximized windows + if( resized || ( old_mode != max_mode && max_mode == MaximizeRestore ) ) { discardWindowPixmap(); if( scene != NULL )