From d4241cf70da0090cc01b30f432525728314372c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Patron?= Date: Sun, 6 Oct 2024 16:53:11 +0200 Subject: [PATCH] backends/x11: Set expected keyboard modifiers for modifier keys This fixes overview toggle when the shortcut is set to a modifier key, e.g. meta. --- ...e_effects_keyboard_interception_filter.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/backends/x11/standalone/x11_standalone_effects_keyboard_interception_filter.cpp b/src/backends/x11/standalone/x11_standalone_effects_keyboard_interception_filter.cpp index 403fea3642..42531df782 100644 --- a/src/backends/x11/standalone/x11_standalone_effects_keyboard_interception_filter.cpp +++ b/src/backends/x11/standalone/x11_standalone_effects_keyboard_interception_filter.cpp @@ -50,6 +50,25 @@ void EffectsKeyboardInterceptionX11Filter::processKey(bool press, xcb_keycode_t } const int qtKey = QXkbCommon::keysymToQtKey(keysym, modifiers, m_keyboard->xkbState(), keycode); + + switch (qtKey) { + case Qt::Key_Shift: + modifiers |= Qt::ShiftModifier; + break; + case Qt::Key_Control: + modifiers |= Qt::ControlModifier; + break; + case Qt::Key_Alt: + modifiers |= Qt::AltModifier; + break; + case Qt::Key_Meta: + modifiers |= Qt::MetaModifier; + break; + case Qt::Key_Mode_switch: + modifiers |= Qt::GroupSwitchModifier; + break; + } + const QString text = QXkbCommon::lookupString(m_keyboard->xkbState(), keycode); QKeyEvent keyEvent(press ? QEvent::KeyPress : QEvent::KeyRelease, qtKey, modifiers, text);