mac: global outside-click monitor and highlight helper

This commit is contained in:
Peter Steinberger
2025-12-10 00:51:02 +01:00
parent 1a17de9d39
commit 3b9d84e2b1
2 changed files with 18 additions and 8 deletions

View File

@@ -353,14 +353,16 @@ final class WebChatWindowController: NSWindowController, WKNavigationDelegate, N
private func installDismissMonitor() {
guard self.localDismissMonitor == nil, let panel = self.window else { return }
self.localDismissMonitor = NSEvent.addLocalMonitorForEvents(
self.localDismissMonitor = NSEvent.addGlobalMonitorForEvents(
matching: [.leftMouseDown, .rightMouseDown, .otherMouseDown]
) { [weak self] event in
guard let self else { return event }
if event.window !== panel {
self.closePanel()
) { [weak self] _ in
guard let self else { return }
let pt = NSEvent.mouseLocation // screen coordinates
if !panel.frame.contains(pt) {
Task { @MainActor in
self.closePanel()
}
}
return event
}
}