|
|
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 |
}
|