Blame SOURCES/kdelibs-4.13.2-invokeTerminal.patch

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