diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java index 19ece8f6e..b1a1fb3dd 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java @@ -397,21 +397,22 @@ public class DecoratorController { node.getProperties().put(PROPERTY_DIALOG_CLOSE_HANDLER, handler); node.addEventHandler(DialogCloseEvent.CLOSE, handler); - if (node instanceof DialogAware) { - DialogAware dialogAware = (DialogAware) node; - if (dialog.isVisible()) { - dialogAware.onDialogShown(); - } else { - dialog.visibleProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - if (newValue) { - dialogAware.onDialogShown(); - observable.removeListener(this); - } + if (dialog.isVisible()) { + dialog.requestFocus(); + if (node instanceof DialogAware) + ((DialogAware) node).onDialogShown(); + } else { + dialog.visibleProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { + if (newValue) { + dialog.requestFocus(); + if (node instanceof DialogAware) + ((DialogAware) node).onDialogShown(); + observable.removeListener(this); } - }); - } + } + }); } }