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)