diff --git a/group.cpp b/group.cpp index 6a3a4b621e..91b73d80ba 100644 --- a/group.cpp +++ b/group.cpp @@ -419,6 +419,8 @@ void Client::setTransient( Window new_transient_for_id ) transient_for->addTransient( this ); } // checkGroup() will check 'check_active_modal' checkGroup( NULL, true ); // force, because transiency has changed + if( isTopMenu()) + workspace()->updateCurrentTopMenu(); workspace()->updateClientLayer( this ); } } diff --git a/workspace.h b/workspace.h index a5f2a22006..2c0209ddee 100644 --- a/workspace.h +++ b/workspace.h @@ -245,6 +245,7 @@ class Workspace : public QObject, public KWinInterface, public KDecorationDefine bool managingTopMenus() const; int topMenuHeight() const; + void updateCurrentTopMenu(); int packPositionLeft( const Client* cl, int oldx, bool left_edge ) const; int packPositionRight( const Client* cl, int oldx, bool right_edge ) const; @@ -369,7 +370,6 @@ class Workspace : public QObject, public KWinInterface, public KDecorationDefine bool allowFullClientRaising( const Client* c, Time timestamp ); bool keepTransientAbove( const Client* mainwindow, const Client* transient ); void blockStackingUpdates( bool block ); - void updateCurrentTopMenu(); void addTopMenu( Client* c ); void removeTopMenu( Client* c ); void setupTopMenuHandling();