Improved support for xinerama-fullscreen apps
svn path=/trunk/KDE/kdebase/kwin/; revision=423736
This commit is contained in:
parent
da00272012
commit
b10e8e559b
2 changed files with 9 additions and 2 deletions
|
@ -248,6 +248,7 @@ QRect Workspace::clientArea( clientAreaOption opt, const QPoint& p, int desktop
|
|||
return desktopwidget->geometry();
|
||||
case WorkArea:
|
||||
return warea;
|
||||
case FullXineramaArea:
|
||||
case FullArea:
|
||||
return desktopwidget->geometry();
|
||||
case ScreenArea:
|
||||
|
@ -2029,7 +2030,12 @@ void Client::setFullScreen( bool set, bool user )
|
|||
workspace()->updateClientLayer( this ); // active fullscreens get different layer
|
||||
info->setState( isFullScreen() ? NET::FullScreen : 0, NET::FullScreen );
|
||||
updateDecoration( false, false );
|
||||
if( isFullScreen())
|
||||
// XINERAMA
|
||||
if( isFullScreen() && xSizeHint.width > workspace()->clientArea(FullScreenArea, this).width() )
|
||||
setGeometry( workspace()->clientArea( FullXineramaArea, this ));
|
||||
else if( isFullScreen() && xSizeHint.height > workspace()->clientArea(FullScreenArea, this).height() )
|
||||
setGeometry( workspace()->clientArea( FullXineramaArea, this ));
|
||||
else if( isFullScreen())
|
||||
setGeometry( workspace()->clientArea( FullScreenArea, this ));
|
||||
else
|
||||
{
|
||||
|
|
3
utils.h
3
utils.h
|
@ -97,7 +97,8 @@ enum clientAreaOption
|
|||
// these below don't depend on xinerama settings
|
||||
WorkArea, // whole workarea (all screens together)
|
||||
FullArea, // whole area (all screens together), ignore struts
|
||||
ScreenArea // one whole screen, ignore struts
|
||||
ScreenArea, // one whole screen, ignore struts
|
||||
FullXineramaArea
|
||||
};
|
||||
|
||||
enum ShadeMode
|
||||
|
|
Loading…
Reference in a new issue