diff --git a/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java b/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java index 30f3abfce..0d7318e2f 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java @@ -307,12 +307,6 @@ public class AppMainWindow { // Close other windows Stage.getWindows().stream().filter(w -> !w.equals(stage)).toList().forEach(w -> w.fireEvent(e)); - // Iconifying stages on Windows will break if the window is closed - // Work around this issue it by re-showing it immediately before hiding it again - if (OsType.ofLocal() == OsType.WINDOWS) { - stage.setIconified(false); - } - // Close self stage.close(); AppOperationMode.onWindowClose(); diff --git a/app/src/main/java/io/xpipe/app/core/window/AppSideWindow.java b/app/src/main/java/io/xpipe/app/core/window/AppSideWindow.java index 767643e44..19c6d833a 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppSideWindow.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppSideWindow.java @@ -83,7 +83,7 @@ public class AppSideWindow { public static Alert createEmptyAlert() { Alert alert = new Alert(Alert.AlertType.NONE); - if (AppMainWindow.get() != null) { + if (AppMainWindow.get() != null && AppMainWindow.get().getStage().isShowing() && !AppMainWindow.get().getStage().isIconified()) { alert.initOwner(AppMainWindow.get().getStage()); } alert.getDialogPane().getScene().setFill(Color.TRANSPARENT);