From 5b8033220d4dabbec082cea87d2b40be55ee8fa2 Mon Sep 17 00:00:00 2001 From: Michael Bianco Date: Tue, 7 Mar 2023 06:19:11 -0700 Subject: [PATCH 1/2] fix: ignore loginwindow events workaround for #85 --- aw_watcher_window/macos.swift | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/aw_watcher_window/macos.swift b/aw_watcher_window/macos.swift index c1b25b46..588f042f 100644 --- a/aw_watcher_window/macos.swift +++ b/aw_watcher_window/macos.swift @@ -297,9 +297,17 @@ class MainThing { var windowTitle: AnyObject? AXUIElementCopyAttributeValue(axElement, kAXTitleAttribute as CFString, &windowTitle) - var data = NetworkMessage(app: frontmost.localizedName!, title: windowTitle as? String ?? "") + let applicationTitle = frontmost.localizedName! - if CHROME_BROWSERS.contains(frontmost.localizedName!) { + // https://github.com/ActivityWatch/aw-watcher-window/issues/85 + guard applicationTitle != "loginwindow" else { + log("loginwindow detected, ignoring") + return + } + + var data = NetworkMessage(app: applicationTitle, title: windowTitle as? String ?? "") + + if CHROME_BROWSERS.contains(applicationTitle) { debug("Chrome browser detected, extracting URL and title") let chromeObject: ChromeProtocol = SBApplication.init(bundleIdentifier: bundleIdentifier)! @@ -323,7 +331,7 @@ class MainThing { } } } - } else if frontmost.localizedName == "Safari" { + } else if applicationTitle == "Safari" { debug("Safari browser detected, extracting URL and title") let safariObject: SafariApplication = SBApplication.init(bundleIdentifier: bundleIdentifier)! From 8e10bac240a52932c83bdc282755eccbf0d372ed Mon Sep 17 00:00:00 2001 From: Michael Bianco Date: Fri, 16 Jun 2023 12:59:21 -0600 Subject: [PATCH 2/2] feat: also ignore all untitled windows --- aw_watcher_window/macos.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/aw_watcher_window/macos.swift b/aw_watcher_window/macos.swift index 588f042f..b0dbac70 100644 --- a/aw_watcher_window/macos.swift +++ b/aw_watcher_window/macos.swift @@ -294,14 +294,15 @@ class MainThing { // calculate now before executing any scripting since that can take some time let nowTime = Date.now - var windowTitle: AnyObject? - AXUIElementCopyAttributeValue(axElement, kAXTitleAttribute as CFString, &windowTitle) + var rawWindowTitle: AnyObject? + AXUIElementCopyAttributeValue(axElement, kAXTitleAttribute as CFString, &rawWindowTitle) + let windowTitle: String = rawWindowTitle as? String ?? "" let applicationTitle = frontmost.localizedName! // https://github.com/ActivityWatch/aw-watcher-window/issues/85 - guard applicationTitle != "loginwindow" else { - log("loginwindow detected, ignoring") + guard applicationTitle != "loginwindow" && windowTitle != "Untitled" else { + log("loginwindow or Untitled detected, ignoring") return }