Blob Blame History Raw
diff -ur kdelibs-4.0.1/kdecore/services/kservice.cpp kdelibs-4.0.1-dcop-servicetype/kdecore/services/kservice.cpp
--- kdelibs-4.0.1/kdecore/services/kservice.cpp	2008-01-05 01:00:34.000000000 +0100
+++ kdelibs-4.0.1-dcop-servicetype/kdecore/services/kservice.cpp	2008-02-19 20:21:57.000000000 +0100
@@ -194,7 +194,12 @@
     //Compatibility
     if( dbusStartupType.isEmpty() && desktopGroup.hasKey("X-DCOP-ServiceType"))
     {
-        dbusStartupType = desktopGroup.readEntry("X-DCOP-ServiceType").toLower();
+        QString dcopStartupType = desktopGroup.readEntry("X-DCOP-ServiceType").toLower();
+        // We can't use unique or multi because KLauncher will try to use D-Bus instead of DCOP on it.
+        // Only "wait" is safe (only waits for the process to complete, no DCOP or D-Bus involved).
+        // We use the default "none" otherwise.
+        if (dcopStartupType == "wait")
+            dbusStartupType = dcopStartupType;
         entryMap.remove("X-DCOP-ServiceType");
     }
     entryMap.remove("X-DBUS-StartupType");