From db2ff13d4fa83307b85cbe8622a8e37cb309c4a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Thu, 6 Oct 2016 07:41:43 +0200 Subject: [PATCH] Only trigger mod-only-shortcuts if global shortcuts are enabled Summary: KWin supports blocking global shortcuts when a window is active through window specific rules. This change ensures that the modifier only shortcuts also honor the blocking of global shortcuts. If global shortcuts are disabled, they won't trigger any more. BUG: 370146 FIXED-IN: 5.8.1 Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D2952 --- autotests/integration/modifier_only_shortcut_test.cpp | 1 - keyboard_input.cpp | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autotests/integration/modifier_only_shortcut_test.cpp b/autotests/integration/modifier_only_shortcut_test.cpp index f9a166a0f3..68feb70ac1 100644 --- a/autotests/integration/modifier_only_shortcut_test.cpp +++ b/autotests/integration/modifier_only_shortcut_test.cpp @@ -347,7 +347,6 @@ void ModifierOnlyShortcutTest::testGlobalShortcutsDisabled() // Should not get triggered kwinApp()->platform()->keyboardKeyPressed(modifier, timestamp++); kwinApp()->platform()->keyboardKeyReleased(modifier, timestamp++); - QEXPECT_FAIL("", "BUG 370146", Continue); QCOMPARE(triggeredSpy.count(), 0); triggeredSpy.clear(); diff --git a/keyboard_input.cpp b/keyboard_input.cpp index b960f4280e..6c3a457042 100644 --- a/keyboard_input.cpp +++ b/keyboard_input.cpp @@ -310,7 +310,8 @@ void Xkb::updateKey(uint32_t key, InputRedirection::KeyboardKeyState state) } else { m_modOnlyShortcut.pressCount--; if (m_modOnlyShortcut.pressCount == 0 && - m_modifiers == Qt::NoModifier) { + m_modifiers == Qt::NoModifier && + !workspace()->globalShortcutsDisabled()) { if (m_modOnlyShortcut.modifier != Qt::NoModifier) { const auto list = options->modifierOnlyDBusShortcut(m_modOnlyShortcut.modifier); if (list.size() >= 4) {