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:
parent
838f9cddb9
commit
90b92dd290
1 changed files with 3 additions and 0 deletions
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue