From 4d9f99c4ea70cdae58c80e1bfdbabefe3abb455f Mon Sep 17 00:00:00 2001 From: Morteza Jamshidi Date: Mon, 30 Sep 2024 15:06:31 +0200 Subject: [PATCH] Windows: Add Key_Backtab as possible key combination for Shift+Tab In windows Backtab key event always comes as "Shift+Backtab". So in order for Backtab key to be recognized as a shortcut sequence, we also consider Backtab without shift modifier a possibility. Fixes: QTBUG-94890 Change-Id: I20a7b404b57d8df5bea23765257a178f2e098ed0 Pick-to: 6.8 Reviewed-by: Oliver Wolff --- src/plugins/platforms/windows/qwindowskeymapper.cpp | 5 +++++ tests/manual/shortcuts/main.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/plugins/platforms/windows/qwindowskeymapper.cpp b/src/plugins/platforms/windows/qwindowskeymapper.cpp index ba76cda40b4..5b8e4e58ffe 100644 --- a/src/plugins/platforms/windows/qwindowskeymapper.cpp +++ b/src/plugins/platforms/windows/qwindowskeymapper.cpp @@ -1354,6 +1354,11 @@ QList QWindowsKeyMapper::possibleKeyCombinations(const QKeyEven return result; } + // If Key_Tab+Shift is pressed we add Key_Backtab without + // shift modifier as a possible combination too + if (baseKey == Qt::Key_Tab && (keyMods & Qt::ShiftModifier)) + result << (Qt::Key_Backtab | (keyMods & ~Qt::ShiftModifier)); + // The base key is _always_ valid, of course result << QKeyCombination::fromCombined(int(baseKey) + int(keyMods)); diff --git a/tests/manual/shortcuts/main.cpp b/tests/manual/shortcuts/main.cpp index 514d62a4841..2f480ad2e43 100644 --- a/tests/manual/shortcuts/main.cpp +++ b/tests/manual/shortcuts/main.cpp @@ -102,6 +102,8 @@ void ShortcutTester::setupLayout() Qt::ControlModifier | Qt::Key_BracketRight, Qt::ShiftModifier | Qt::Key_F3, Qt::ControlModifier | Qt::Key_F3, + Qt::Key_Backtab, + Qt::ShiftModifier | Qt::Key_Backtab, }; for (const auto k : keys3)