From a3cac111ad93460a330b7ce22a03a8c28b0e5aa1 Mon Sep 17 00:00:00 2001 From: AleandroPagani Date: Tue, 2 Jun 2026 19:41:21 +0200 Subject: [PATCH] Fix: login button Fix: windows fullscreen on and off --- .../it/polimi/ingsw/gc14/View/GUI/GUI.java | 38 +++++++------------ .../gc14/View/GUI/LoginFXMLController.java | 2 +- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java index b937467..88fe570 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java @@ -9,6 +9,7 @@ import javafx.application.Platform; import javafx.fxml.FXMLLoader; import javafx.geometry.Rectangle2D; import javafx.scene.Scene; +import javafx.scene.input.KeyCombination; import javafx.stage.Screen; import javafx.stage.Stage; @@ -61,24 +62,29 @@ public class GUI extends Application implements IView { loaderLeaderboard = new FXMLLoader(getClass().getResource("/GUIScene/standing.fxml")); leaderboardScene = new Scene(loaderLeaderboard.load()); controllerLeaderboard = loaderLeaderboard.getController(); - controllerLeaderboard.setController(controller,()->{ + controllerLeaderboard.setController(controller, () -> { + controllerLogin.updateLoginButton(true); primaryStage.setScene(loginScene); controllerLogin.showError(""); - primaryStage.setFullScreen(true); - },loginScene); + }, loginScene); primaryStage.setScene(loginScene); - primaryStage.setFullScreen(true); Rectangle2D tmp = Screen.getPrimary().getVisualBounds(); primaryStage.setWidth(tmp.getWidth()); primaryStage.setHeight(tmp.getHeight()); primaryStage.setX(tmp.getMinX()); primaryStage.setY(tmp.getMinY()); primaryStage.setResizable(false); + primaryStage.setFullScreenExitHint(""); + primaryStage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH); + + primaryStage.fullScreenProperty().addListener((obs, was, isNow) -> { + if (!isNow) Platform.runLater(() -> primaryStage.setFullScreen(true)); + }); primaryStage.setTitle("Mesos"); primaryStage.setOnCloseRequest(e -> { @@ -86,6 +92,7 @@ public class GUI extends Application implements IView { System.exit(0); }); primaryStage.show(); + Platform.runLater(() -> primaryStage.setFullScreen(true)); } @@ -100,37 +107,19 @@ public class GUI extends Application implements IView { public void render() { Platform.runLater(() -> { - boolean toFull=false; - synchronized (miniModel) { if (controller.miniModel.currentState.getGameStage() == TOTEM_CHOICE) { - if (primaryStage.getScene()!=leaderboardScene) { - toFull=true; - } controllerTotem.render(); primaryStage.setScene(totemScene); } else if (controller.miniModel.currentState.getGameStage() == ENDED) { - if (primaryStage.getScene()!=leaderboardScene) { - toFull=true; - } controllerLeaderboard.render(); primaryStage.setScene(leaderboardScene); } else { - if (primaryStage.getScene()!=mainScene) { - toFull=true; - } - //double w = primaryStage.getWidth(); - //double h = primaryStage.getHeight(); primaryStage.setScene(mainScene); controllerMain.render(); } - - if (toFull) { - primaryStage.setFullScreen(true); - } } }); - } @Override public void showMessage(String message) { @@ -140,11 +129,10 @@ public class GUI extends Application implements IView { @Override public void showError(ErrorType error,String message) { Platform.runLater(() -> { - if(error==ErrorType.SERVER_CRASHED){ + if (error == ErrorType.SERVER_CRASHED) { primaryStage.setScene(loginScene); controllerLogin.showError(error); - primaryStage.setFullScreen(true); - }else { + } else { synchronized (miniModel) { controllerMain.isError = true; controllerMain.render(); diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/LoginFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/LoginFXMLController.java index 7528328..77b35b3 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/LoginFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/LoginFXMLController.java @@ -112,7 +112,7 @@ public class LoginFXMLController { }).start(); } - private void updateLoginButton(boolean enabled) { + public void updateLoginButton(boolean enabled) { btnAccedi.setDisable(!enabled); btnAccedi.setStyle( "-fx-font-family: 'Cinzel'; -fx-font-size: 12; -fx-font-weight: bold;" +