Temporarily block geometry while (re)setting fullscreen mode, otherwise

updateDecoration() can cause resizing and changing the maximize state.
BUG: 106019


svn path=/trunk/KDE/kdebase/kwin/; revision=417304
This commit is contained in:
Luboš Luňák 2005-05-23 11:43:29 +00:00
parent 838f9cddb9
commit 90b92dd290

View file

@ -1974,6 +1974,7 @@ void Client::setFullScreen( bool set, bool user )
if( was_fs == isFullScreen()) if( was_fs == isFullScreen())
return; return;
StackingUpdatesBlocker blocker( workspace()); StackingUpdatesBlocker blocker( workspace());
++block_geometry;
workspace()->updateClientLayer( this ); // active fullscreens get different layer workspace()->updateClientLayer( this ); // active fullscreens get different layer
info->setState( isFullScreen() ? NET::FullScreen : 0, NET::FullScreen ); info->setState( isFullScreen() ? NET::FullScreen : 0, NET::FullScreen );
updateDecoration( false, false ); updateDecoration( false, false );
@ -1991,6 +1992,8 @@ void Client::setFullScreen( bool set, bool user )
setGeometry( workspace()->clientArea( MaximizeArea, this )); setGeometry( workspace()->clientArea( MaximizeArea, this ));
} }
} }
--block_geometry;
setGeometry( geometry(), ForceGeometrySet );
updateWindowRules(); updateWindowRules();
} }