mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Fix keybinding dialog creating on top of another keybinding dialog.
#story[1278]
This commit is contained in:
@@ -4,25 +4,13 @@ import com.jfoenix.controls.JFXButton;
|
|||||||
import com.jfoenix.controls.JFXDecorator;
|
import com.jfoenix.controls.JFXDecorator;
|
||||||
import com.jfoenix.controls.JFXDialog;
|
import com.jfoenix.controls.JFXDialog;
|
||||||
import com.jfoenix.controls.JFXDialog.DialogTransition;
|
import com.jfoenix.controls.JFXDialog.DialogTransition;
|
||||||
import com.jfoenix.controls.events.JFXDialogEvent;
|
|
||||||
import com.jfoenix.svg.SVGGlyph;
|
import com.jfoenix.svg.SVGGlyph;
|
||||||
import com.sun.org.apache.xpath.internal.operations.Bool;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.event.EventHandler;
|
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Cursor;
|
import javafx.scene.*;
|
||||||
import javafx.scene.Node;
|
|
||||||
import javafx.scene.Parent;
|
|
||||||
import javafx.scene.Scene;
|
|
||||||
import javafx.scene.SceneAntialiasing;
|
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.input.MouseEvent;
|
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Pane;
|
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
@@ -33,6 +21,9 @@ import seng302.utilities.BonjourInstallChecker;
|
|||||||
import seng302.utilities.Sounds;
|
import seng302.utilities.Sounds;
|
||||||
import seng302.visualiser.GameClient;
|
import seng302.visualiser.GameClient;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class ViewManager {
|
public class ViewManager {
|
||||||
|
|
||||||
private static ViewManager instance;
|
private static ViewManager instance;
|
||||||
@@ -187,15 +178,22 @@ public class ViewManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recursively find JFXDialog given a starting node. Will traverse children of StackPane.
|
||||||
|
*
|
||||||
|
* @param nodes children nodes to be check.
|
||||||
|
* @return true if node contains JFXDialog.
|
||||||
|
*/
|
||||||
private Boolean checkDialogOpened(ObservableList<Node> nodes) {
|
private Boolean checkDialogOpened(ObservableList<Node> nodes) {
|
||||||
|
boolean foundJFXDialog = false;
|
||||||
for (Node node : nodes) {
|
for (Node node : nodes) {
|
||||||
if (node instanceof JFXDialog) {
|
if (node instanceof JFXDialog) {
|
||||||
return true;
|
return true;
|
||||||
} else if (node instanceof StackPane) {
|
} else if (node instanceof StackPane) {
|
||||||
return checkDialogOpened(((StackPane) node).getChildren());
|
foundJFXDialog = checkDialogOpened(((StackPane) node).getChildren());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return foundJFXDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showKeyBindingDialog() throws IOException {
|
private void showKeyBindingDialog() throws IOException {
|
||||||
|
|||||||
Reference in New Issue
Block a user