diff --git a/group.cpp b/group.cpp index 76c0e9685c..bf4f000a99 100644 --- a/group.cpp +++ b/group.cpp @@ -682,6 +682,7 @@ void Client::setTransient( Window new_transient_for_id ) if( isTopMenu()) workspace()->updateCurrentTopMenu(); workspace()->updateClientLayer( this ); + workspace()->resetUpdateToolWindowsTimer(); } } diff --git a/workspace.cpp b/workspace.cpp index 3344b5e48d..700efc4334 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -1023,7 +1023,13 @@ void Workspace::updateToolWindows( bool also_hide ) } else // setActiveClient() is after called with NULL client, quickly followed // by setting a new client, which would result in flickering - updateToolWindowsTimer.start( 50 ); + resetUpdateToolWindowsTimer(); + } + + +void Workspace::resetUpdateToolWindowsTimer() + { + updateToolWindowsTimer.start( 200 ); } void Workspace::slotUpdateToolWindows() diff --git a/workspace.h b/workspace.h index b0c02ede51..0c371dddeb 100644 --- a/workspace.h +++ b/workspace.h @@ -161,6 +161,7 @@ class Workspace : public QObject, public KDecorationDefines void restack( Client *c, Client *under ); void updateClientLayer( Client* c ); void raiseOrLowerClient( Client* ); + void resetUpdateToolWindowsTimer(); void restoreSessionStackingOrder( Client* c ); void updateStackingOrder( bool propagate_new_clients = false ); void forceRestacking();