diff --git a/effects.cpp b/effects.cpp index 9d814248d5..a16282ba28 100644 --- a/effects.cpp +++ b/effects.cpp @@ -721,6 +721,21 @@ QStringList EffectsHandlerImpl::loadedModules() const return listModules; } + +QStringList EffectsHandlerImpl::listOfModulesEffect() const + { + KService::List offers = KServiceTypeTrader::self()->query("KWin/Effect"); + QStringList listOfModules; + // First unload necessary effects + foreach( const KService::Ptr &service, offers ) + { + KPluginInfo plugininfo( service ); + listOfModules<addRepaintFull(); diff --git a/effects.h b/effects.h index 8e19cb3c98..0efed8468a 100644 --- a/effects.h +++ b/effects.h @@ -142,6 +142,7 @@ class EffectsHandlerImpl : public EffectsHandler void reloadEffect( const QString& name ); bool isEffectLoaded( const QString& name ); QStringList loadedModules() const; + QStringList listOfModulesEffect() const; QList elevatedWindows() const; diff --git a/org.kde.KWin.xml b/org.kde.KWin.xml index b3a8e7e3ab..f8df4b63c0 100644 --- a/org.kde.KWin.xml +++ b/org.kde.KWin.xml @@ -50,6 +50,9 @@ + + + diff --git a/useractions.cpp b/useractions.cpp index 1c65c86f31..bda1be41cb 100644 --- a/useractions.cpp +++ b/useractions.cpp @@ -742,6 +742,15 @@ QStringList Workspace::loadedModules() const return listModulesLoaded; } +QStringList Workspace::listOfModulesEffect() const + { + QStringList listModules; + if ( effects ) + listModules = static_cast(effects)->listOfModulesEffect(); + return listModules; + } + + void Workspace::slotActivateAttentionWindow() { if( attention_chain.count() > 0 ) diff --git a/workspace.h b/workspace.h index 0efa13fd8c..3c417bd150 100644 --- a/workspace.h +++ b/workspace.h @@ -214,6 +214,7 @@ class Workspace : public QObject, public KDecorationDefines void unloadEffect( const QString& name ); QStringList loadedModules() const; + QStringList listOfModulesEffect() const; /**