From ca2abccfda9c9dcf7d49d27ae2c545b4cb284fc2 Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Fri, 5 Dec 2025 22:22:19 +1000 Subject: [PATCH] fix subscription --- src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs b/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs index 006e537..2a86bdd 100644 --- a/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs +++ b/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs @@ -68,7 +68,7 @@ public partial class ProblemsPanel : Control e.NewItem.View.Value = treeItem; Observable.EveryValueChanged(e.NewItem.Value, s => s.Diagnostics.Count).SubscribeOnThreadPool().ObserveOnThreadPool() - .Subscribe(s => treeItem.Visible = s is not 0).AddTo(this); + .SubscribeAwait(async (s, ct) => await this.InvokeAsync(() => treeItem.Visible = s is not 0)).AddTo(this); var projectDiagnosticsView = e.NewItem.Value.Diagnostics.CreateView(y => new TreeItemContainer()); projectDiagnosticsView.ObserveChanged().SubscribeOnThreadPool().ObserveOnThreadPool() @@ -182,9 +182,10 @@ public partial class ProblemsPanel : Control private async Task FreeTreeItem(TreeItem? treeItem) { + if (treeItem is null) return; await this.InvokeAsync(() => { - treeItem?.Free(); + treeItem.Free(); }); }