From 88ccbdf11d673c9097a3e0d1f8632f583f4e4750 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 15 Jan 2023 19:14:15 +0800 Subject: [PATCH] ShiftKeyUpChecker // Add additional conditions. --- .../Sources/ShiftKeyUpChecker/ShiftKeyUpChecker.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Packages/Qwertyyb_ShiftKeyUpChecker/Sources/ShiftKeyUpChecker/ShiftKeyUpChecker.swift b/Packages/Qwertyyb_ShiftKeyUpChecker/Sources/ShiftKeyUpChecker/ShiftKeyUpChecker.swift index 199912ff..8df9991d 100644 --- a/Packages/Qwertyyb_ShiftKeyUpChecker/Sources/ShiftKeyUpChecker/ShiftKeyUpChecker.swift +++ b/Packages/Qwertyyb_ShiftKeyUpChecker/Sources/ShiftKeyUpChecker/ShiftKeyUpChecker.swift @@ -31,10 +31,12 @@ public struct ShiftKeyUpChecker { private var lastTime: Date = .init() + private var shiftIsBeingPressed = false + private mutating func checkModifierKeyUp(event: NSEvent) -> Bool { if event.type == .flagsChanged, event.modifierFlags.intersection(.deviceIndependentFlagsMask) == .init(rawValue: 0), - Date() - lastTime <= delayInterval + Date() - lastTime <= delayInterval, shiftIsBeingPressed { // modifier keyup event lastTime = Date(timeInterval: -3600 * 4, since: Date()) @@ -54,8 +56,10 @@ public struct ShiftKeyUpChecker { if isKeyDown { // modifier keydown event lastTime = Date() + if event.modifierFlags == .shift { shiftIsBeingPressed = true } } else { lastTime = Date(timeInterval: -3600 * 4, since: Date()) + shiftIsBeingPressed = false } return false }