Skip to content

Commit 17d1d49

Browse files
committed
fix: maintain reference to popup items in LineSelectButton
1 parent 5e09e22 commit 17d1d49

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/LineSelectButton.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import javafx.collections.ObservableList;
2929
import javafx.css.PseudoClass;
3030
import javafx.geometry.Pos;
31+
import javafx.scene.Node;
3132
import javafx.scene.control.Label;
3233
import javafx.scene.input.*;
3334
import javafx.scene.layout.StackPane;
@@ -37,6 +38,7 @@
3738
import org.jackhuang.hmcl.util.javafx.MappedObservableList;
3839

3940
import java.util.Collection;
41+
import java.util.List;
4042
import java.util.Objects;
4143
import java.util.function.Function;
4244

@@ -49,6 +51,8 @@ public class LineSelectButton<T> extends LineButton {
4951
private static final PseudoClass SELECTED_PSEUDO_CLASS = PseudoClass.getPseudoClass("selected");
5052

5153
private JFXPopup popup;
54+
@SuppressWarnings({"FieldCanBeLocal", "unused"})
55+
private ObservableList<Node> popupItems; // keep a reference
5256

5357
public LineSelectButton() {
5458
this.getStyleClass().add(DEFAULT_STYLE_CLASS);
@@ -87,7 +91,7 @@ public void fire() {
8791

8892
ripplerContainer.addEventFilter(ScrollEvent.ANY, ignored -> popup.hide());
8993

90-
Bindings.bindContent(popupMenu.getContent(), MappedObservableList.create(itemsProperty(), item -> {
94+
Bindings.bindContent(popupMenu.getContent(), popupItems = MappedObservableList.create(itemsProperty(), item -> {
9195
VBox vbox = new VBox();
9296

9397
var itemTitleLabel = new Label();

0 commit comments

Comments
 (0)