completed fullscreen fix
svn path=/trunk/kdebase/kwin/; revision=113471
This commit is contained in:
parent
87d25e94c5
commit
827e9b92be
2 changed files with 16 additions and 5 deletions
|
@ -609,7 +609,6 @@ bool Client::manage( bool isMapped, bool doNotShow, bool isInitial )
|
||||||
if ( geom == workspace()->geometry() && inherits( "KWinInternal::NoBorderClient" ) ) {
|
if ( geom == workspace()->geometry() && inherits( "KWinInternal::NoBorderClient" ) ) {
|
||||||
is_fullscreen = TRUE;
|
is_fullscreen = TRUE;
|
||||||
may_move = FALSE; // don't let fullscreen windows be moved around
|
may_move = FALSE; // don't let fullscreen windows be moved around
|
||||||
setStaysOnTop( TRUE ); // fullscreen windows shall be on top
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isMapped || session || isTransient() ) {
|
if ( isMapped || session || isTransient() ) {
|
||||||
|
@ -2271,6 +2270,7 @@ void Client::setActive( bool act)
|
||||||
delete autoRaiseTimer;
|
delete autoRaiseTimer;
|
||||||
autoRaiseTimer = 0;
|
autoRaiseTimer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
activeChange( active );
|
activeChange( active );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1278,14 +1278,24 @@ void Workspace::setActiveClient( Client* c )
|
||||||
{
|
{
|
||||||
if ( active_client == c )
|
if ( active_client == c )
|
||||||
return;
|
return;
|
||||||
if ( active_client )
|
if ( active_client ) {
|
||||||
active_client->setActive( FALSE );
|
active_client->setActive( FALSE );
|
||||||
|
if ( active_client->isFullScreen() && active_client->staysOnTop()
|
||||||
|
&& c && c->mainClient() != active_client->mainClient() ) {
|
||||||
|
active_client->setStaysOnTop( FALSE );
|
||||||
|
lowerClient( active_client );
|
||||||
|
}
|
||||||
|
}
|
||||||
active_client = c;
|
active_client = c;
|
||||||
last_active_client = active_client;
|
last_active_client = active_client;
|
||||||
if ( active_client ) {
|
if ( active_client ) {
|
||||||
focus_chain.remove( c );
|
if ( active_client->isFullScreen() && !active_client->staysOnTop() ) {
|
||||||
if ( c->wantsTabFocus() )
|
active_client->setStaysOnTop( TRUE );
|
||||||
focus_chain.append( c );
|
raiseClient( active_client );
|
||||||
|
}
|
||||||
|
focus_chain.remove( c );
|
||||||
|
if ( c->wantsTabFocus() )
|
||||||
|
focus_chain.append( c );
|
||||||
}
|
}
|
||||||
|
|
||||||
// toplevel menubar handling
|
// toplevel menubar handling
|
||||||
|
@ -1352,6 +1362,7 @@ void Workspace::activateClient( Client* c, bool force )
|
||||||
if (!c->isOnDesktop(currentDesktop()) ) {
|
if (!c->isOnDesktop(currentDesktop()) ) {
|
||||||
setCurrentDesktop( c->desktop() );
|
setCurrentDesktop( c->desktop() );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Workspace::iconifyOrDeiconifyTransientsOf( Client* c )
|
void Workspace::iconifyOrDeiconifyTransientsOf( Client* c )
|
||||||
|
|
Loading…
Reference in a new issue