From 6f53da159a9ee3c94d8921b849748cc640d30c77 Mon Sep 17 00:00:00 2001 From: Haowei Wen Date: Tue, 31 Dec 2024 19:56:38 +0800 Subject: [PATCH] Refine DownloadPage * Fix cursor is not hand when hovering on ModItem * Fix clicking on the ModItem in ModVersion dialog would open a new dialog again * Fix ESC doesn't work in ModVersion dialog --- .../java/org/jackhuang/hmcl/ui/versions/DownloadPage.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java index d566567eca..b00adb7754 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java @@ -62,6 +62,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static org.jackhuang.hmcl.ui.FXUtils.onEscPressed; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; public class DownloadPage extends Control implements DecoratorPage { @@ -380,6 +381,7 @@ private static final class ModItem extends StackPane { HBox descPane = new HBox(8); descPane.setPadding(new Insets(0, 8, 0, 8)); descPane.setAlignment(Pos.CENTER_LEFT); + descPane.setMouseTransparent(true); { StackPane graphicPane = new StackPane(); @@ -445,7 +447,7 @@ public ModVersion(RemoteMod.Version version, DownloadPage selfPage) { VBox box = new VBox(8); box.setPadding(new Insets(8)); ModItem modItem = new ModItem(version, selfPage); - FXUtils.onClicked(modItem, () -> fireEvent(new DialogCloseEvent())); + modItem.setMouseTransparent(true); // Item is displayed for info, clicking shouldn't open the dialog again box.getChildren().setAll(modItem); SpinnerPane spinnerPane = new SpinnerPane(); ScrollPane scrollPane = new ScrollPane(); @@ -488,6 +490,8 @@ public ModVersion(RemoteMod.Version version, DownloadPage selfPage) { this.prefWidthProperty().bind(BindingMapping.of(Controllers.getStage().widthProperty()).map(w -> w.doubleValue() * 0.7)); this.prefHeightProperty().bind(BindingMapping.of(Controllers.getStage().heightProperty()).map(w -> w.doubleValue() * 0.7)); + + onEscPressed(this, cancelButton::fire); } private void loadDependencies(RemoteMod.Version version, DownloadPage selfPage, SpinnerPane spinnerPane, ComponentList dependenciesList) {