diff --git a/alt-tab-macos/logic/Applications.swift b/alt-tab-macos/logic/Applications.swift index 77652c12..bdd7c206 100644 --- a/alt-tab-macos/logic/Applications.swift +++ b/alt-tab-macos/logic/Applications.swift @@ -5,6 +5,13 @@ class Applications { static var list = [Application]() static var appsObserver = RunningApplicationsObserver() + static func observeNewWindows() { + for app in list { + guard app.runningApplication.isFinishedLaunching else { continue } + app.observeNewWindows() + } + } + static func initialDiscovery() { addInitialRunningApplications() observeRunningApplications() @@ -31,10 +38,7 @@ class Applications { } if windows.count > 0 { CGSAddWindowsToSpaces(cgsMainConnectionId, windows as NSArray, [Spaces.currentSpaceId]) - for app in list { - guard app.runningApplication.isFinishedLaunching else { continue } - app.observeNewWindows() - } + Applications.observeNewWindows() Windows.sortByLevel() CGSRemoveWindowsFromSpaces(cgsMainConnectionId, windows as NSArray, [Spaces.currentSpaceId]) return diff --git a/alt-tab-macos/logic/Spaces.swift b/alt-tab-macos/logic/Spaces.swift index 155d21a4..2f472ce9 100644 --- a/alt-tab-macos/logic/Spaces.swift +++ b/alt-tab-macos/logic/Spaces.swift @@ -10,6 +10,7 @@ class Spaces { static func observeSpaceChanges() { NSWorkspace.shared.notificationCenter.addObserver(forName: NSWorkspace.activeSpaceDidChangeNotification, object: nil, queue: nil, using: { _ in updateCurrentSpace() + Applications.observeNewWindows() let app = App.shared as! App guard app.appIsBeingUsed else { return } app.reopenUi()