From 5e19cbbc0f22e5d91cb661a9d5c727d3b49532d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Tue, 30 Sep 2008 12:06:25 +0000 Subject: [PATCH] r866294 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 :(. svn path=/branches/KDE/4.1/kdebase/workspace/; revision=866296 --- client.h | 1 + useractions.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) 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 ); }