feat: avoid confusion with native app-switcher (closes #2080)

This commit is contained in:
Louis Pontoise committed 2022-11-04 22:20:52 +01:00
1 parent 99f8adeb7d
commit f906c0ecab
1 file changed
+5 -1
@@ -153,7 +153,11 @@ class ControlsTab {
.commandShiftTab: { (shortcut) in shortcut.carbonKeyCode == kVK_Tab && combinedModifiersMatch(shortcut.carbonModifierFlags, UInt32(cmdKey | shiftKey)) },
.commandKeyAboveTab: { (shortcut) in shortcut.carbonModifierFlags == cmdKey && shortcut.carbonKeyCode == kVK_ANSI_Grave },
]
let overlappingHotkeys = shortcuts.values.compactMap { (atShortcut) in nativeHotkeys.first { $1(atShortcut.shortcut) }?.key }
var overlappingHotkeys = shortcuts.values.compactMap { (atShortcut) in nativeHotkeys.first { $1(atShortcut.shortcut) }?.key }
// if command+tab if bound, disable command+shift+tab always, to avoid confused users
if overlappingHotkeys.contains(.commandTab) && !overlappingHotkeys.contains(.commandShiftTab) {
overlappingHotkeys.append(.commandShiftTab)
}
let nonOverlappingHotkeys: [CGSSymbolicHotKey] = Array(Set(nativeHotkeys.keys).symmetricDifference(Set(overlappingHotkeys)))
setNativeCommandTabEnabled(false, overlappingHotkeys)
setNativeCommandTabEnabled(true, nonOverlappingHotkeys)