diff --git a/autotests/test_virtual_desktops.cpp b/autotests/test_virtual_desktops.cpp
index 2d6787eda6..7a27ca1cc6 100644
--- a/autotests/test_virtual_desktops.cpp
+++ b/autotests/test_virtual_desktops.cpp
@@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*********************************************************************/
#include "../virtualdesktops.h"
+#include "../input.h"
// KDE
#include
@@ -28,6 +29,14 @@ namespace KWin {
int screen_number = 0;
+InputRedirection *InputRedirection::s_self = nullptr;
+
+void InputRedirection::registerShortcut(const QKeySequence &shortcut, QAction *action)
+{
+ Q_UNUSED(shortcut)
+ Q_UNUSED(action)
+}
+
}
Q_DECLARE_METATYPE(Qt::Orientation)
diff --git a/scripting/scriptingutils.h b/scripting/scriptingutils.h
index dff15aa92a..e92923bda0 100644
--- a/scripting/scriptingutils.h
+++ b/scripting/scriptingutils.h
@@ -21,6 +21,7 @@ along with this program. If not, see .
#ifndef KWIN_SCRIPTINGUTILS_H
#define KWIN_SCRIPTINGUTILS_H
+#include "input.h"
#include "workspace.h"
#ifdef KWIN_BUILD_SCREENEDGES
#include "screenedge.h"
@@ -117,8 +118,10 @@ QScriptValue globalShortcut(QScriptContext *context, QScriptEngine *engine)
QAction* a = new QAction(script);
a->setObjectName(context->argument(0).toString());
a->setText(context->argument(1).toString());
- KGlobalAccel::self()->setShortcut(a, QList() << QKeySequence(context->argument(2).toString()));
+ const QKeySequence shortcut = QKeySequence(context->argument(2).toString());
+ KGlobalAccel::self()->setShortcut(a, QList() << shortcut);
script->registerShortcut(a, context->argument(3));
+ input()->registerShortcut(shortcut, a);
return engine->newVariant(true);
}
diff --git a/tabbox/tabbox.cpp b/tabbox/tabbox.cpp
index 589cd8fabb..200222c595 100644
--- a/tabbox/tabbox.cpp
+++ b/tabbox/tabbox.cpp
@@ -34,6 +34,7 @@ along with this program. If not, see .
#endif
#include "client.h"
#include "effects.h"
+#include "input.h"
#include "focuschain.h"
#ifdef KWIN_BUILD_SCREENEDGES
#include "screenedge.h"
@@ -492,6 +493,7 @@ void TabBox::key(const char *actionName, Slot slot, const QKeySequence &shortcut
a->setText(i18n(actionName));
KGlobalAccel::self()->setShortcut(a, QList() << shortcut);
connect(a, &QAction::triggered, TabBox::self(), slot);
+ input()->registerShortcut(shortcut, a);
auto cuts = KGlobalAccel::self()->shortcut(a);
globalShortcutChanged(a, cuts.isEmpty() ? QKeySequence() : cuts.first());
}
diff --git a/useractions.cpp b/useractions.cpp
index 2d3767cd39..a483d8d93f 100755
--- a/useractions.cpp
+++ b/useractions.cpp
@@ -35,6 +35,7 @@ along with this program. If not, see .
#include "cursor.h"
#include "client.h"
#include "decorations.h"
+#include "input.h"
#include "workspace.h"
#include "effects.h"
#include "screens.h"
@@ -921,6 +922,7 @@ void Workspace::initShortcut(const QString &actionName, const QString &descripti
KGlobalAccel::self()->setDefaultShortcut(a, QList() << shortcut);
KGlobalAccel::self()->setShortcut(a, QList() << shortcut);
connect(a, &QAction::triggered, this, slot);
+ input()->registerShortcut(shortcut, a);
}
/*!
diff --git a/virtualdesktops.cpp b/virtualdesktops.cpp
index d6afab5a5b..393d5ed5b3 100644
--- a/virtualdesktops.cpp
+++ b/virtualdesktops.cpp
@@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*********************************************************************/
#include "virtualdesktops.h"
+#include "input.h"
// KDE
#include
#include
@@ -453,6 +454,7 @@ void VirtualDesktopManager::addAction(const QString &name, const KLocalizedStrin
a->setData(value);
connect(a, &QAction::triggered, this, slot);
KGlobalAccel::self()->setShortcut(a, QList() << key);
+ input()->registerShortcut(key, a);
}
void VirtualDesktopManager::addAction(const QString &name, const QString &label, void (VirtualDesktopManager::*slot)())
@@ -462,6 +464,7 @@ void VirtualDesktopManager::addAction(const QString &name, const QString &label,
a->setText(label);
connect(a, &QAction::triggered, this, slot);
KGlobalAccel::self()->setShortcut(a, QList());
+ input()->registerShortcut(QKeySequence(), a);
}
void VirtualDesktopManager::slotSwitchTo()