From d4e29436d5dacfd263bdf5d399bebd6e679e288a Mon Sep 17 00:00:00 2001 From: Khan Winter <35942988+thecoolwinter@users.noreply.github.com> Date: Tue, 4 Jul 2023 10:58:01 -0500 Subject: [PATCH] Add some `DIspatchQueue`s --- .../Features/DebugArea/Views/DebugAreaTerminalView.swift | 5 ++++- CodeEdit/Features/SplitView/SplitViewItem.swift | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CodeEdit/Features/DebugArea/Views/DebugAreaTerminalView.swift b/CodeEdit/Features/DebugArea/Views/DebugAreaTerminalView.swift index cd613738b..90bb7020f 100644 --- a/CodeEdit/Features/DebugArea/Views/DebugAreaTerminalView.swift +++ b/CodeEdit/Features/DebugArea/Views/DebugAreaTerminalView.swift @@ -134,7 +134,10 @@ struct DebugAreaTerminalView: View { url: terminal.url!, shellType: terminal.shell, onTitleChange: { newTitle in - handleTitleChange(id: terminal.id, title: newTitle) + // This can be called whenever, even in a view update so it needs to be dispatched. + DispatchQueue.main.async { + handleTitleChange(id: terminal.id, title: newTitle) + } } ) .padding(.top, 10) diff --git a/CodeEdit/Features/SplitView/SplitViewItem.swift b/CodeEdit/Features/SplitView/SplitViewItem.swift index 404dafd7c..4229bf5e4 100644 --- a/CodeEdit/Features/SplitView/SplitViewItem.swift +++ b/CodeEdit/Features/SplitView/SplitViewItem.swift @@ -26,7 +26,10 @@ class SplitViewItem: ObservableObject { self.item.canCollapse = child[SplitViewItemCanCollapseViewTraitKey.self] self.item.isCollapsed = self.collapsed.wrappedValue self.item.holdingPriority = child[SplitViewHoldingPriorityTraitKey.self] - self.observers = createObservers() + // Skip the initial observation via a dispatch to avoid a "updating during view update" error + DispatchQueue.main.async { + self.observers = self.createObservers() + } } private func createObservers() -> [NSKeyValueObservation] {