From 48450490c3c5fe869a2a92f4ac6a36e90684f66c Mon Sep 17 00:00:00 2001 From: crschnick Date: Thu, 13 Mar 2025 04:13:27 +0000 Subject: [PATCH] Fix observable binding being gced --- .../java/io/xpipe/app/comp/store/StoreSectionBaseComp.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreSectionBaseComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreSectionBaseComp.java index 8c2ea26c4..8f41e2e83 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreSectionBaseComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreSectionBaseComp.java @@ -8,6 +8,7 @@ import io.xpipe.app.comp.base.IconButtonComp; import io.xpipe.app.comp.base.ListBoxViewComp; import io.xpipe.app.comp.base.VerticalComp; import io.xpipe.app.storage.DataColor; +import io.xpipe.app.util.BindingsHelper; import io.xpipe.app.util.LabelGraphic; import io.xpipe.app.util.ThreadHelper; import javafx.beans.Observable; @@ -59,7 +60,9 @@ public abstract class StoreSectionBaseComp extends Comp> { } protected void addPseudoClassListeners(VBox vbox, ObservableBooleanValue expanded) { - effectiveExpanded(expanded).subscribe(val -> { + var observable = effectiveExpanded(expanded); + BindingsHelper.preserve(this, observable); + observable.subscribe(val -> { vbox.pseudoClassStateChanged(EXPANDED, val); });