diff --git a/9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch b/9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch index 7e6354c9..d91f334a 100644 --- a/9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch +++ b/9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch @@ -84,7 +84,7 @@ diff -Naur qtbase-everywhere-src-6.7.2.orig/src/gui/platform/unix/qxkbcommon.cpp + // but Ctrl++ is more specific than +, so we should skip the last one + bool ambiguous = false; + for (QKeyCombination shortcut : std::as_const(result)) { -+ if (shortcut.key() == qtKey && shortcut.keyboardModifiers() == mods) { ++ if (shortcut.key() == qtKey && (shortcut.keyboardModifiers() & mods) == mods) { + ambiguous = true; + break; + } @@ -92,7 +92,7 @@ diff -Naur qtbase-everywhere-src-6.7.2.orig/src/gui/platform/unix/qxkbcommon.cpp + if (ambiguous) + continue; + -+ if (!result.contains(qtKey + int(mods))) //NOTE: We should disallow duplicates in the result list ++ if (!result.contains(qtKey + int(mods))) //NOTE: We should disallow duplicates in the result list (TODO: Is this check really needed?) + result += QKeyCombination::fromCombined(qtKey + int(mods)); + } + }