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:
parent
96c420e927
commit
e048421030
1 changed files with 8 additions and 4 deletions
|
@ -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 )
|
||||
|
|
Loading…
Reference in a new issue