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();
|
return desktopwidget->geometry();
|
||||||
case WorkArea:
|
case WorkArea:
|
||||||
return warea;
|
return warea;
|
||||||
|
case FullXineramaArea:
|
||||||
case FullArea:
|
case FullArea:
|
||||||
return desktopwidget->geometry();
|
return desktopwidget->geometry();
|
||||||
case ScreenArea:
|
case ScreenArea:
|
||||||
|
@ -2029,7 +2030,12 @@ void Client::setFullScreen( bool set, bool user )
|
||||||
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 );
|
||||||
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 ));
|
setGeometry( workspace()->clientArea( FullScreenArea, this ));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
3
utils.h
3
utils.h
|
@ -97,7 +97,8 @@ enum clientAreaOption
|
||||||
// these below don't depend on xinerama settings
|
// these below don't depend on xinerama settings
|
||||||
WorkArea, // whole workarea (all screens together)
|
WorkArea, // whole workarea (all screens together)
|
||||||
FullArea, // whole area (all screens together), ignore struts
|
FullArea, // whole area (all screens together), ignore struts
|
||||||
ScreenArea // one whole screen, ignore struts
|
ScreenArea, // one whole screen, ignore struts
|
||||||
|
FullXineramaArea
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ShadeMode
|
enum ShadeMode
|
||||||
|
|
Loading…
Reference in a new issue