Skip to content

Commit

Permalink
fix: don't display invalid windows (may fix #292 #200)
Browse files Browse the repository at this point in the history
  • Loading branch information
lwouis committed May 6, 2020
1 parent 3a11cc6 commit 1bca012
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/logic/Windows.swift
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ class Windows {
}
}

// some window can get invalid *after* we add them to our list, but without us getting notified about it
// workaround: we remove the invalid windows right before showing the UI
static func removeWindowsWhichBecameInvalid() {
Windows.list.removeAll(where: { !$0.axUiElement.isActualWindow($0.application.runningApplication.bundleIdentifier) })
}

static func refreshIfWindowShouldBeShownToTheUser(_ window: Window, _ screen: NSScreen) {
window.shouldShowTheUser = !(!Preferences.showMinimizedWindows && window.isMinimized) &&
!(!Preferences.showHiddenWindows && window.isHidden) &&
Expand Down
1 change: 1 addition & 0 deletions src/ui/App.swift
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ class App: NSApplication, NSApplicationDelegate {
// TODO: find a way to update space index when windows are moved to another space, instead of on every trigger
Windows.updateSpaces()
let screen = Screen.preferred()
Windows.removeWindowsWhichBecameInvalid()
Windows.refreshWhichWindowsToShowTheUser(screen)
if Windows.list.first(where: { $0.shouldShowTheUser }) == nil { hideUi(); return }
Windows.updateFocusedWindowIndex(0)
Expand Down

0 comments on commit 1bca012

Please sign in to comment.