From e21aeb82ae74812abb4597403bed857efe237d93 Mon Sep 17 00:00:00 2001 From: Maik Marschner Date: Sun, 26 Apr 2026 01:02:15 +0200 Subject: [PATCH 1/2] Fix scene reset warning blocking input events for all other dialogs. --- chunky/src/java/se/llbit/fxutil/Dialogs.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chunky/src/java/se/llbit/fxutil/Dialogs.java b/chunky/src/java/se/llbit/fxutil/Dialogs.java index e726f3d4e..6c2034f56 100644 --- a/chunky/src/java/se/llbit/fxutil/Dialogs.java +++ b/chunky/src/java/se/llbit/fxutil/Dialogs.java @@ -12,6 +12,7 @@ import javafx.scene.layout.Region; import javafx.scene.layout.VBox; import javafx.scene.text.Text; +import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.Window; @@ -57,6 +58,7 @@ public static void setupDialogDesign(Dialog dialog, Scene mainScene) { dialogStage.getIcons().addAll(mainWindowStage.getIcons()); } dialog.initOwner(mainWindow); + dialog.initModality(Modality.WINDOW_MODAL); } /** From 3f9693724237c7d239f30116e5807500d197fe50 Mon Sep 17 00:00:00 2001 From: Maik Marschner Date: Sun, 26 Apr 2026 14:43:03 +0200 Subject: [PATCH 2/2] Remove unused dialog code. --- chunky/src/java/se/llbit/fxutil/Dialogs.java | 56 ++------------------ 1 file changed, 3 insertions(+), 53 deletions(-) diff --git a/chunky/src/java/se/llbit/fxutil/Dialogs.java b/chunky/src/java/se/llbit/fxutil/Dialogs.java index 6c2034f56..7fb09e656 100644 --- a/chunky/src/java/se/llbit/fxutil/Dialogs.java +++ b/chunky/src/java/se/llbit/fxutil/Dialogs.java @@ -1,17 +1,9 @@ package se.llbit.fxutil; import javafx.scene.Scene; -import javafx.scene.control.Alert; +import javafx.scene.control.*; import javafx.scene.control.Alert.AlertType; -import javafx.scene.control.Button; -import javafx.scene.control.ButtonType; -import javafx.scene.control.CheckBox; -import javafx.scene.control.Dialog; -import javafx.scene.control.DialogPane; -import javafx.scene.control.Label; import javafx.scene.layout.Region; -import javafx.scene.layout.VBox; -import javafx.scene.text.Text; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.Window; @@ -31,27 +23,13 @@ public static Alert createAlert(AlertType type) { return alert; } - public static Dialog createSpecialApprovalConfirmation( - String title, - String header, - String content, - String confirmLabel - ) { - return new SpecialApprovalConfirmationDialog( - title, - header, - content, - confirmLabel - ); - } - /** * Init design of the dialog to the design of the main window. * This sets the icon and color scheme. */ public static void setupDialogDesign(Dialog dialog, Scene mainScene) { Window mainWindow = mainScene.getWindow(); - if(mainWindow instanceof Stage) { + if (mainWindow instanceof Stage) { Stage mainWindowStage = (Stage) mainWindow; Stage dialogStage = (Stage) dialog.getDialogPane().getScene().getWindow(); @@ -73,6 +51,7 @@ public static void setDefaultButton(Alert alert, ButtonType targetButtonType) { /** * Makes the given dialog always stay on top of its parent window. + * * @param dialog A dialog */ public static void stayOnTop(Alert dialog) { @@ -82,33 +61,4 @@ public static void stayOnTop(Alert dialog) { ((Stage) window).toFront(); } } - - /** - * makes extra sure that user wants to confirm things - */ - static class SpecialApprovalConfirmationDialog extends Dialog { - final CheckBox checkBox; - - SpecialApprovalConfirmationDialog( - String title, - String header, - String content, - String checkBoxLabel - ) { - setResultConverter(param -> param); - checkBox = new CheckBox(checkBoxLabel); - - final DialogPane dialogPane = getDialogPane(); - dialogPane.getStyleClass().add("alert"); - dialogPane.getStyleClass().add("warning"); - - setTitle(title); - dialogPane.setHeaderText(header); - dialogPane.setContent(new VBox(16, new Text(content), checkBox)); - dialogPane.getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); - - dialogPane.lookupButton(ButtonType.OK) - .disableProperty().bind(checkBox.selectedProperty().not()); - } - } }