Blame SOURCES/kdelibs-4.13.2-invokeTerminal.patch

e4fba6
diff --git a/kdecore/kernel/ktoolinvocation_x11.cpp b/kdecore/kernel/ktoolinvocation_x11.cpp
e4fba6
index 5168f2f..ed2a9ab 100644
e4fba6
--- a/kdecore/kernel/ktoolinvocation_x11.cpp
e4fba6
+++ b/kdecore/kernel/ktoolinvocation_x11.cpp
e4fba6
@@ -405,18 +405,20 @@ void KToolInvocation::invokeTerminal(const QString &command,
e4fba6
     QStringList cmdTokens = KShell::splitArgs(exec);
e4fba6
     QString cmd = cmdTokens.takeFirst();
e4fba6
 
e4fba6
-    if (exec == QLatin1String("konsole") && !workdir.isEmpty()) {
e4fba6
-        cmdTokens << QString::fromLatin1("--workdir");
e4fba6
-        cmdTokens << workdir;
e4fba6
-        // For other terminals like xterm, we'll simply change the working
e4fba6
-        // directory before launching them, see below.
e4fba6
+    if (exec == QLatin1String("konsole")) {
e4fba6
+        cmdTokens += QString::fromLatin1("--nofork");
e4fba6
+
e4fba6
+        if (!workdir.isEmpty()) {
e4fba6
+            cmdTokens << QString::fromLatin1("--workdir");
e4fba6
+            cmdTokens << workdir;
e4fba6
+            // For other terminals like xterm, we'll simply change the working
e4fba6
+            // directory before launching them, see below.
e4fba6
+        }
e4fba6
     }
e4fba6
 
e4fba6
-    QString error;
e4fba6
-    if (self()->startServiceInternal("kdeinit_exec_with_workdir",
e4fba6
-                                    cmd, cmdTokens, &error, 0, NULL, startup_id, false, workdir)) {
e4fba6
+    if (!QProcess::startDetached(cmd, cmdTokens)) {
e4fba6
       KMessage::message(KMessage::Error,
e4fba6
-                      i18n("Could not launch the terminal client:\n\n%1", error),
e4fba6
+                      i18n("Could not launch the terminal client"),
e4fba6
                       i18n("Could not launch Terminal Client"));
e4fba6
     }
e4fba6
 }