diff --git a/src/ui/preferences-window/tabs/ControlsTab.swift b/src/ui/preferences-window/tabs/ControlsTab.swift index 0a78d164..4291a35e 100644 --- a/src/ui/preferences-window/tabs/ControlsTab.swift +++ b/src/ui/preferences-window/tabs/ControlsTab.swift @@ -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)