From f906c0ecab5bf43a4bca9fae476dec8761fedb51 Mon Sep 17 00:00:00 2001 From: Louis Pontoise Date: Fri, 4 Nov 2022 22:20:52 +0100 Subject: [PATCH] feat: avoid confusion with native app-switcher (closes #2080) --- src/ui/preferences-window/tabs/ControlsTab.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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)