diff --git a/client.h b/client.h index 346fcef015..25859f7721 100644 --- a/client.h +++ b/client.h @@ -330,6 +330,7 @@ class Client void processKillerExited(); void demandAttentionKNotify(); void syncTimeout(); + void delayedSetShortcut(); private: void setMappingState( int s ); // ICCCM 4.1.3.1, 4.1.4 , NETWM 2.5.1 diff --git a/useractions.cpp b/useractions.cpp index b3048c5cca..579023566c 100644 --- a/useractions.cpp +++ b/useractions.cpp @@ -1264,6 +1264,18 @@ void Client::setShortcutInternal( const KShortcut& cut ) return; _shortcut = cut; updateCaption(); +#if 0 + workspace()->clientShortcutUpdated( this ); +#else + // Workaround for kwin<->kglobalaccel deadlock, when KWin has X grab and the kded + // kglobalaccel module tries to create the key grab. KWin should preferably grab + // they keys itself anyway :(. + QTimer::singleShot( 0, this, SLOT( delayedSetShortcut())); +#endif + } + +void Client::delayedSetShortcut() + { workspace()->clientShortcutUpdated( this ); }