summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorteza Jamshidi <[email protected]>2024-09-30 15:06:31 +0200
committerMorteza Jamshidi <[email protected]>2025-01-06 14:25:15 +0000
commit4d9f99c4ea70cdae58c80e1bfdbabefe3abb455f (patch)
treebbfd741499f5fca2558ae50c7293a0a54c4257a2
parentf2ce68d8f31f4c90471183d66075bd6fd5955d6a (diff)
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 <[email protected]>
-rw-r--r--src/plugins/platforms/windows/qwindowskeymapper.cpp5
-rw-r--r--tests/manual/shortcuts/main.cpp2
2 files changed, 7 insertions, 0 deletions
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<QKeyCombination> 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)