completed fullscreen fix

svn path=/trunk/kdebase/kwin/; revision=113471
icc-effect-5.14.5
Matthias Ettrich 2001-09-06 09:21:19 +00:00
parent 87d25e94c5
commit 827e9b92be
2 changed files with 16 additions and 5 deletions

View File

@ -609,7 +609,6 @@ bool Client::manage( bool isMapped, bool doNotShow, bool isInitial )
if ( geom == workspace()->geometry() && inherits( "KWinInternal::NoBorderClient" ) ) {
is_fullscreen = TRUE;
may_move = FALSE; // don't let fullscreen windows be moved around
setStaysOnTop( TRUE ); // fullscreen windows shall be on top
}
if ( isMapped || session || isTransient() ) {
@ -2271,6 +2270,7 @@ void Client::setActive( bool act)
delete autoRaiseTimer;
autoRaiseTimer = 0;
}
activeChange( active );
}

View File

@ -1278,14 +1278,24 @@ void Workspace::setActiveClient( Client* c )
{
if ( active_client == c )
return;
if ( active_client )
if ( active_client ) {
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;
last_active_client = active_client;
if ( active_client ) {
focus_chain.remove( c );
if ( c->wantsTabFocus() )
focus_chain.append( c );
if ( active_client->isFullScreen() && !active_client->staysOnTop() ) {
active_client->setStaysOnTop( TRUE );
raiseClient( active_client );
}
focus_chain.remove( c );
if ( c->wantsTabFocus() )
focus_chain.append( c );
}
// toplevel menubar handling
@ -1352,6 +1362,7 @@ void Workspace::activateClient( Client* c, bool force )
if (!c->isOnDesktop(currentDesktop()) ) {
setCurrentDesktop( c->desktop() );
}
}
void Workspace::iconifyOrDeiconifyTransientsOf( Client* c )