diff --git a/src/logic/ATShortcut.swift b/src/logic/ATShortcut.swift index b24cfd77..d02f2cac 100644 --- a/src/logic/ATShortcut.swift +++ b/src/logic/ATShortcut.swift @@ -25,6 +25,11 @@ class ATShortcut { state = state == .down ? .up : .down if state == .up { KeyRepeatTimer.timer?.invalidate() + } else { + // macOS bug: the app doesn't receive either local or global modifierChanged events during Space transition + // we force holdShortcut to be .down if nextWindowShortcut trigger during a transition, since we know it has to be down at that point + let suffix = shortcutId == "nextWindowShortcut" ? "" : "2" + ControlsTab.shortcuts["holdShortcut" + suffix]!.state = .down } if (triggerPhase == .down && shortcutState == .down) || (triggerPhase == .up && shortcutState == .up) { return true