Skip to content

Commit

Permalink
LshuffMerge pull request #189 from MrKai77/187-double-click-trigger-k…
Browse files Browse the repository at this point in the history
…ey-to-trigger-loop-recognized-incorrectly

🐛 #187 "Double-click trigger key to trigger Loop" recognized incorrectly
  • Loading branch information
MrKai77 authored Jan 25, 2024
2 parents 4f0865a + c897821 commit 651da71
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions Loop/Managers/LoopManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,24 @@ class LoopManager: ObservableObject {
self.triggerDelayTimer!.resume()
}

private func handleTriggerDelay() {
if self.triggerDelayTimer == nil {
self.startTriggerDelayTimer(seconds: Defaults[.triggerDelay]) {
self.openLoop()
}
}
}

private func handleDoubleClickToTrigger(_ useTriggerDelay: Bool) {
if abs(self.lastTriggerKeyClick.timeIntervalSinceNow) < NSEvent.doubleClickInterval {
if useTriggerDelay {
self.handleTriggerDelay()
} else {
self.openLoop()
}
}
}

private func handleLoopKeypress(_ event: NSEvent) {
if event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.capsLock) {
self.closeLoop(forceClose: true)
Expand All @@ -275,31 +293,16 @@ class LoopManager: ObservableObject {
let useDoubleClickTrigger = Defaults[.doubleClickToTrigger]

if useDoubleClickTrigger {
if abs(self.lastTriggerKeyClick.timeIntervalSinceNow) < NSEvent.doubleClickInterval {
if useTriggerDelay {
if self.triggerDelayTimer == nil {
self.startTriggerDelayTimer(seconds: Defaults[.triggerDelay]) {
self.openLoop()
}
}
} else {
self.openLoop()
}
}
guard currentlyPressedModifiers.sorted() == Defaults[.triggerKey].sorted() else { return }
handleDoubleClickToTrigger(useTriggerDelay)
} else if useTriggerDelay {
if self.triggerDelayTimer == nil {
self.startTriggerDelayTimer(seconds: Defaults[.triggerDelay]) {
self.openLoop()
}
}
self.handleTriggerDelay()
} else {
self.openLoop()
}
self.lastTriggerKeyClick = Date.now
} else {
if self.isLoopActive {
self.closeLoop()
}
self.closeLoop()
}
}

Expand Down Expand Up @@ -337,7 +340,7 @@ class LoopManager: ObservableObject {
}

self.keybindMonitor.start()

isLoopActive = true
}

Expand All @@ -350,10 +353,10 @@ class LoopManager: ObservableObject {

self.currentlyPressedModifiers = []

if self.targetWindow != nil &&
self.screenToResizeOn != nil &&
forceClose == false &&
self.currentAction.direction != .noAction &&
if self.targetWindow != nil,
self.screenToResizeOn != nil,
forceClose == false,
self.currentAction.direction != .noAction,
self.isLoopActive {

if let screenToResizeOn = self.screenToResizeOn,
Expand Down

0 comments on commit 651da71

Please sign in to comment.