Skip to content

Commit

Permalink
🐛 #314 Try and reduce conflicts with hyperkey
Browse files Browse the repository at this point in the history
  • Loading branch information
MrKai77 committed May 22, 2024
1 parent 4ae4bd1 commit 66d1626
Showing 1 changed file with 24 additions and 6 deletions.
30 changes: 24 additions & 6 deletions Loop/Managers/LoopManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -299,25 +299,39 @@ class LoopManager: ObservableObject {
}

private func handleLoopKeypress(_ event: NSEvent) {
self.triggerDelayTimer = nil
triggerDelayTimer = nil

let previousModifiers = currentlyPressedModifiers
processModifiers(event)

if Defaults[.triggerKey].isSubset(of: self.currentlyPressedModifiers) {
let triggerKey = Defaults[.triggerKey]
let wasKeyDown = (event.type == .keyDown || currentlyPressedModifiers.count > previousModifiers.count)

if wasKeyDown,
triggerKey.isSubset(of: currentlyPressedModifiers) {

guard
!isLoopActive,
currentlyPressedModifiers.count <= triggerKey.count
else {
return
}

let useTriggerDelay = Defaults[.triggerDelay] > 0.1
let useDoubleClickTrigger = Defaults[.doubleClickToTrigger]

if useDoubleClickTrigger {
guard currentlyPressedModifiers.sorted() == Defaults[.triggerKey].sorted() else { return }
handleDoubleClickToTrigger(useTriggerDelay)
} else if useTriggerDelay {
self.handleTriggerDelay()
handleTriggerDelay()
} else {
self.openLoop()
openLoop()
}
self.lastTriggerKeyClick = Date.now
} else {
if self.isLoopActive {
self.closeLoop()
if isLoopActive {
closeLoop()
}
}
}
Expand All @@ -337,6 +351,10 @@ class LoopManager: ObservableObject {
for key in flags where CGKeyCode.keyToImage.contains(where: { $0.key == key }) {
if !self.currentlyPressedModifiers.map({ $0.baseModifier }).contains(key) {
self.currentlyPressedModifiers.insert(key)

// if key.isOnRightSide {
// print("\(key) is on right side")
// }
}
}
}
Expand Down

0 comments on commit 66d1626

Please sign in to comment.