diff --git a/alt-tab-macos/logic/Keyboard.swift b/alt-tab-macos/logic/Keyboard.swift index 5d6d7508..8e06d1b1 100644 --- a/alt-tab-macos/logic/Keyboard.swift +++ b/alt-tab-macos/logic/Keyboard.swift @@ -50,10 +50,7 @@ func keyboardHandler(_ cgEvent: CGEvent, _ delegate: Application) -> Unmanaged 0 { - if isFirstSummon { - isFirstSummon = false - let workItem = DispatchWorkItem { - self.computeOpenWindows() - self.thumbnailsPanel!.computeThumbnails() - self.cycleSelection(step) - self.showCenteredPanel(self.thumbnailsPanel!) - } - workItems.append(workItem) - DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Preferences.windowDisplayDelay!, execute: workItem) - } else { - self.cycleSelection(step) + if isFirstSummon { + isFirstSummon = false + selectedOpenWindow = 0 + computeOpenWindows() + if openWindows.count <= 0 { + return } + selectedOpenWindow = cellWithStep(step) + var workItem: DispatchWorkItem! + workItem = DispatchWorkItem { + if !workItem.isCancelled { self.thumbnailsPanel!.computeThumbnails() } + if !workItem.isCancelled { self.thumbnailsPanel!.highlightCellAt(step) } + if !workItem.isCancelled { self.showCenteredPanel(self.thumbnailsPanel!) } + } + workItems.append(workItem) + DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Preferences.windowDisplayDelay!, execute: workItem) + + } else { + cycleSelection(step) } }