summaryrefslogtreecommitdiffstats
path: root/source/kde/kde/patch/plasma-workspace/70d23b89.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/kde/kde/patch/plasma-workspace/70d23b89.patch')
-rw-r--r--source/kde/kde/patch/plasma-workspace/70d23b89.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/source/kde/kde/patch/plasma-workspace/70d23b89.patch b/source/kde/kde/patch/plasma-workspace/70d23b89.patch
new file mode 100644
index 000000000..2d9c2a0f8
--- /dev/null
+++ b/source/kde/kde/patch/plasma-workspace/70d23b89.patch
@@ -0,0 +1,52 @@
+From 70d23b891e95bc6911389773f320a4406a12bd87 Mon Sep 17 00:00:00 2001
+From: Lufan Zhong <lufanzhong@gmail.com>
+Date: Sun, 26 Dec 2021 19:33:09 +0000
+Subject: [PATCH] runners/shell: Port from KToolInvocation::invokeTerminal to
+ KTerminalLauncherJob
+
+kinit is being deprecated; this change will allow it to open a terminal and execute
+commands normally without kinit being present.
+
+BUG: 437131
+FIXED-IN: 5.24
+---
+ runners/shell/shellrunner.cpp | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/runners/shell/shellrunner.cpp b/runners/shell/shellrunner.cpp
+index 03b54e1f1..be4058acf 100644
+--- a/runners/shell/shellrunner.cpp
++++ b/runners/shell/shellrunner.cpp
+@@ -12,8 +12,9 @@
+ #include <KLocalizedString>
+ #include <KNotificationJobUiDelegate>
+ #include <KShell>
+-#include <KToolInvocation>
++#include <KTerminalLauncherJob>
+ #include <QAction>
++#include <QProcessEnvironment>
+ #include <QRegularExpression>
+ #include <QStandardPaths>
+
+@@ -62,7 +63,17 @@ void ShellRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryM
+ {
+ if (match.selectedAction()) {
+ const QVariantList data = match.data().toList();
+- KToolInvocation::invokeTerminal(data.at(0).toString(), data.at(1).toStringList());
++ const QStringList list = data.at(1).toStringList();
++ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
++ for (const auto& str : list)
++ {
++ const int pos = str.indexOf('=');
++ env.insert(str.left(pos), str.mid(pos+1));
++ }
++ auto job = new KTerminalLauncherJob(data.at(0).toString());
++ job->setProcessEnvironment(env);
++ job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled));
++ job->start();
+ return;
+ }
+
+--
+GitLab
+