From 5c038502a941297ef95adda8eac5d0178a2f32cd Mon Sep 17 00:00:00 2001 From: Kai Azim <68963405+MrKai77@users.noreply.github.com> Date: Thu, 23 May 2024 20:32:52 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20#314=20Fix=20small=20regression?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Loop/Managers/LoopManager.swift | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Loop/Managers/LoopManager.swift b/Loop/Managers/LoopManager.swift index 721873df..79f280ad 100644 --- a/Loop/Managers/LoopManager.swift +++ b/Loop/Managers/LoopManager.swift @@ -303,10 +303,15 @@ class LoopManager: ObservableObject { processModifiers(event) let triggerKey = Defaults[.triggerKey] - let wasKeyDown = (event.type == .keyDown || currentlyPressedModifiers.count > previousModifiers.count) + let wasKeyDown = event.type == .keyDown || currentlyPressedModifiers.count > previousModifiers.count if wasKeyDown, triggerKey.isSubset(of: currentlyPressedModifiers) { - guard !isLoopActive else { + guard + !isLoopActive, + + // This makes sure that the amount of keys being pressed is not more than the actual trigger key + currentlyPressedModifiers.count <= triggerKey.count + else { return } @@ -323,9 +328,7 @@ class LoopManager: ObservableObject { } lastTriggerKeyClick = .now } else { - if isLoopActive { - closeLoop() - } + closeLoop() } } @@ -382,6 +385,8 @@ class LoopManager: ObservableObject { } private func closeLoop(forceClose: Bool = false) { + guard isLoopActive == true else { return } + triggerDelayTimer = nil closeWindows()