From eb012f638e9ca196e7ae9fed1cd17bbf636437ef Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Thu, 14 Oct 2021 10:23:04 +0200 Subject: [PATCH] fix popup window placement on moving active window back to primary screen --- src/main/java/com/sparrowwallet/sparrow/AppServices.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sparrowwallet/sparrow/AppServices.java b/src/main/java/com/sparrowwallet/sparrow/AppServices.java index a194f2ac..c5c55c16 100644 --- a/src/main/java/com/sparrowwallet/sparrow/AppServices.java +++ b/src/main/java/com/sparrowwallet/sparrow/AppServices.java @@ -695,7 +695,9 @@ public class AppServices { public static void moveToWindowScreen(Window currentWindow, Window newWindow, double newWindowWidth, double newWindowHeight) { Screen currentScreen = Screen.getScreens().stream().filter(screen -> screen.getVisualBounds().contains(currentWindow.getX(), currentWindow.getY())).findFirst().orElse(null); - if(currentScreen != null && !Screen.getPrimary().getVisualBounds().contains(currentWindow.getX(), currentWindow.getY()) && !currentScreen.getVisualBounds().contains(newWindow.getX(), newWindow.getY())) { + if(currentScreen != null + && ((!Double.isNaN(newWindow.getX()) && !Double.isNaN(newWindow.getY())) || !Screen.getPrimary().getVisualBounds().contains(currentWindow.getX(), currentWindow.getY())) + && !currentScreen.getVisualBounds().contains(newWindow.getX(), newWindow.getY())) { double x = currentWindow.getX() + (currentWindow.getWidth() / 2) - (newWindowWidth / 2); double y = currentWindow.getY() + (currentWindow.getHeight() / 2.2) - (newWindowHeight / 2); newWindow.setX(x);