From 155ba4607b097e75c99af2a1e9b489c9202ebe7a Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Fri, 16 Feb 2024 15:24:52 +0100 Subject: [PATCH] introduced functionality to center the unlock screen within the main application window --- .../org/cryptomator/ui/unlock/UnlockWorkflow.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java b/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java index 98a49dec5..df7371da1 100644 --- a/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java +++ b/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java @@ -11,6 +11,7 @@ import org.cryptomator.ui.common.FxmlFile; import org.cryptomator.ui.common.FxmlScene; import org.cryptomator.ui.common.VaultService; import org.cryptomator.ui.fxapp.FxApplicationWindows; +import org.cryptomator.ui.fxapp.PrimaryStage; import org.cryptomator.ui.keyloading.KeyLoadingStrategy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,6 +22,7 @@ import javafx.beans.property.ObjectProperty; import javafx.concurrent.Task; import javafx.scene.Scene; import javafx.stage.Stage; +import javafx.stage.Window; import java.io.IOException; /** @@ -33,6 +35,7 @@ public class UnlockWorkflow extends Task { private static final Logger LOG = LoggerFactory.getLogger(UnlockWorkflow.class); + private final Stage mainWindow; private final Stage window; private final Vault vault; private final VaultService vaultService; @@ -44,7 +47,8 @@ public class UnlockWorkflow extends Task { private final ObjectProperty illegalMountPointException; @Inject - UnlockWorkflow(@UnlockWindow Stage window, // + UnlockWorkflow(@PrimaryStage Stage mainWindow, // + @UnlockWindow Stage window, // @UnlockWindow Vault vault, // VaultService vaultService, // @FxmlScene(FxmlFile.UNLOCK_SUCCESS) Lazy successScene, // @@ -53,6 +57,7 @@ public class UnlockWorkflow extends Task { FxApplicationWindows appWindows, // @UnlockWindow KeyLoadingStrategy keyLoadingStrategy, // @UnlockWindow ObjectProperty illegalMountPointException) { + this.mainWindow = mainWindow; this.window = window; this.vault = vault; this.vaultService = vaultService; @@ -99,6 +104,13 @@ public class UnlockWorkflow extends Task { appWindows.showErrorWindow(e, window, null); } + private void centerOnPrimaryStage(Window window){ + double centerXPosition = mainWindow.getX() + (mainWindow.getWidth() - window.getWidth()) / 2; + double centerYPosition = mainWindow.getY() + (mainWindow.getHeight() - window.getHeight()) / 2; + window.setX(centerXPosition); + window.setY(centerYPosition); + } + @Override protected void succeeded() { LOG.info("Unlock of '{}' succeeded.", vault.getDisplayName()); @@ -107,6 +119,7 @@ public class UnlockWorkflow extends Task { case ASK -> Platform.runLater(() -> { window.setScene(successScene.get()); window.show(); + centerOnPrimaryStage(window); }); case REVEAL -> { Platform.runLater(window::close);