From 238da9bf393b8f269fa0443d1a95596bf4e60107 Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Sun, 28 Jul 2024 14:04:15 +0200 Subject: [PATCH] Fix bug: workspace.nodeMonitor returns nil User observable: $ aerospace list-workspaces --visible --monitor focused --format '%{monitor-id}' NULL-MONITOR --- Sources/AppBundle/tree/TreeNodeEx.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Sources/AppBundle/tree/TreeNodeEx.swift b/Sources/AppBundle/tree/TreeNodeEx.swift index a96919a0..75eb1e94 100644 --- a/Sources/AppBundle/tree/TreeNodeEx.swift +++ b/Sources/AppBundle/tree/TreeNodeEx.swift @@ -33,10 +33,11 @@ extension TreeNode { var visualWorkspace: Workspace? { workspace ?? nodeMonitor?.activeWorkspace } var nodeMonitor: Monitor? { - guard let parent else { return nil } - return switch parent.cases { - case .workspace(let parent): parent.workspaceMonitor - case .tilingContainer, .macosFullscreenWindowsContainer: parent.nodeMonitor + switch self.nodeCases { + case .workspace(let ws): ws.workspaceMonitor + case .window: parent?.nodeMonitor + case .tilingContainer: parent?.nodeMonitor + case .macosFullscreenWindowsContainer: parent?.nodeMonitor case .macosInvisibleWindowsContainer, .macosPopupWindowsContainer: nil } }