summaryrefslogtreecommitdiffstats
path: root/kded/kded.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kded/kded.cpp')
-rw-r--r--kded/kded.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/kded/kded.cpp b/kded/kded.cpp
index ed4c5e75e..df16faddb 100644
--- a/kded/kded.cpp
+++ b/kded/kded.cpp
@@ -162,12 +162,27 @@ void Kded::initModules()
kde_running = false;
// Preload kded modules.
KService::List kdedModules = KServiceType::offers("KDEDModule");
+ QString version = getenv( "KDE_SESSION_VERSION" );
+ QStringList blacklist;
+ if ( version >= "4" )
+ {
+ kdDebug(7020) << "KDE4 is running." << endl;
+ blacklist << "mediamanager" << "medianotifier" << "kmilod" << "kwrited";
+ }
for(KService::List::ConstIterator it = kdedModules.begin(); it != kdedModules.end(); ++it)
{
KService::Ptr service = *it;
bool autoload = service->property("X-KDE-Kded-autoload", QVariant::Bool).toBool();
config->setGroup(QString("Module-%1").arg(service->desktopEntryName()));
autoload = config->readBoolEntry("autoload", autoload);
+ for (QStringList::Iterator module = blacklist.begin(); module != blacklist.end(); ++module)
+ {
+ if (service->desktopEntryName() == *module)
+ {
+ autoload = false;
+ break;
+ }
+ }
if( m_newStartup )
{
// see ksmserver's README for description of the phases