From eead7f48a2891c11f50ada4e81b9cbd187b3baf2 Mon Sep 17 00:00:00 2001 From: Louis Pontoise Date: Mon, 6 Apr 2020 15:30:40 +0900 Subject: [PATCH] fix: focus correct window after app quits (see #213) --- src/logic/Applications.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/logic/Applications.swift b/src/logic/Applications.swift index 9d8ebf823..5899c8dd3 100644 --- a/src/logic/Applications.swift +++ b/src/logic/Applications.swift @@ -49,9 +49,9 @@ class Applications { } static func removeRunningApplications(_ runningApps: [NSRunningApplication]) { + var indexesToRemove = [Int]() for runningApp in runningApps { Applications.list.removeAll(where: { $0.runningApplication.isEqual(runningApp) }) - var indexesToRemove = [Int]() Windows.list.enumerated().forEach { (index, window) in if window.application.runningApplication.isEqual(runningApp) { indexesToRemove.append(index) @@ -61,7 +61,10 @@ class Applications { } guard Windows.list.count > 0 else { App.app.hideUi(); return } // TODO: implement of more sophisticated way to decide which thumbnail gets focused on app quit - Windows.updateFocusedWindowIndex(1) + let windowsOnTheLeftOrFocusedWindow = indexesToRemove.filter { $0 <= Windows.focusedWindowIndex }.count + if windowsOnTheLeftOrFocusedWindow > 0 { + Windows.cycleFocusedWindowIndex(-windowsOnTheLeftOrFocusedWindow) + } App.app.refreshOpenUi() }