diff --git a/src/logic/events/MouseEvents.swift b/src/logic/events/MouseEvents.swift index 24c269fc..82e2e8eb 100644 --- a/src/logic/events/MouseEvents.swift +++ b/src/logic/events/MouseEvents.swift @@ -10,18 +10,14 @@ class MouseEvents { observe_() } - static func disable() { - shouldBeEnabled = false - CGEvent.tapEnable(tap: eventTap, enable: false) - } - - static func enable() { - shouldBeEnabled = true - CGEvent.tapEnable(tap: eventTap, enable: true) + static func toggle(_ enabled: Bool) { + shouldBeEnabled = enabled + if let eventTap = eventTap { + CGEvent.tapEnable(tap: eventTap, enable: enabled) + } } } - private func observe_() { let eventMask = [CGEventType.leftMouseDown, CGEventType.leftMouseUp].reduce(CGEventMask(0), { $0 | (1 << $1.rawValue) }) // CGEvent.tapCreate returns null if ensureAccessibilityCheckboxIsChecked() didn't pass @@ -32,7 +28,7 @@ private func observe_() { eventsOfInterest: eventMask, callback: mouseHandler, userInfo: nil) - MouseEvents.disable() + MouseEvents.toggle(false) let runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0) CFRunLoopAddSource(BackgroundWork.mouseEventsThread.runLoop, runLoopSource, .commonModes) } diff --git a/src/ui/App.swift b/src/ui/App.swift index c4e28f02..9bfbaab8 100644 --- a/src/ui/App.swift +++ b/src/ui/App.swift @@ -135,7 +135,7 @@ class App: AppCenterApplication, NSApplicationDelegate { debugPrint("hideUi") appIsBeingUsed = false isFirstSummon = true - MouseEvents.disable() + MouseEvents.toggle(false) thumbnailsPanel.orderOut(nil) } diff --git a/src/ui/main-window/ThumbnailsPanel.swift b/src/ui/main-window/ThumbnailsPanel.swift index f36ee4cf..db4bdb5c 100644 --- a/src/ui/main-window/ThumbnailsPanel.swift +++ b/src/ui/main-window/ThumbnailsPanel.swift @@ -27,7 +27,7 @@ class ThumbnailsPanel: NSPanel { func show() { orderFrontRegardless() - MouseEvents.enable() + MouseEvents.toggle(true) thumbnailsView.scrollView.flashScrollers() }