Workspace::activateClient does not flicker any more now.

The problem was that when switching to a window on a different desktop via the taskbar setCurrentDesktop made a different window active for a second.

svn path=/trunk/kdebase/kwin/; revision=77821
This commit is contained in:
Matthias Elter 2001-01-13 14:57:16 +00:00
parent 96c420e927
commit e048421030

View file

@ -1017,13 +1017,13 @@ void Workspace::setActiveClient( Client* c )
setActiveClient() and the operation is complete. This may not happen
with certain focus policies, though.
\sa setActiveClient(), requestFocus()
\sa stActiveClient(), requestFocus()
*/
void Workspace::activateClient( Client* c, bool force )
{
if (!c->isOnDesktop(currentDesktop()) ) {
setCurrentDesktop( c->desktop() );
}
//if (!c->isOnDesktop(currentDesktop()) ) {
// setCurrentDesktop( c->desktop() );
//}
raiseClient( c );
if ( c->isIconified() )
Events::raise( Events::DeIconify );
@ -1032,6 +1032,10 @@ void Workspace::activateClient( Client* c, bool force )
if ( options->focusPolicyIsReasonable() ) {
requestFocus( c, force );
}
if (!c->isOnDesktop(currentDesktop()) ) {
setCurrentDesktop( c->desktop() );
}
}
void Workspace::iconifyOrDeiconifyTransientsOf( Client* c )