diff --git a/src/main/java/envoy/client/ui/SceneContext.java b/src/main/java/envoy/client/ui/SceneContext.java
index 1644955..d261000 100644
--- a/src/main/java/envoy/client/ui/SceneContext.java
+++ b/src/main/java/envoy/client/ui/SceneContext.java
@@ -13,6 +13,10 @@ import envoy.client.event.ThemeChangeEvent;
import envoy.event.EventBus;
/**
+ * Manages a stack of scenes. The most recently added scene is displayed inside
+ * a stage. When a scene is removed from the stack, its predecessor is
+ * displayed.
+ *
* Project: envoy-client
* File: SceneContext.java
* Created: 06.06.2020
@@ -75,8 +79,10 @@ public final class SceneContext {
*/
public void pop() {
sceneStack.pop();
- stage.setScene(sceneStack.peek());
- applyCSS();
+ if (!sceneStack.isEmpty()) {
+ stage.setScene(sceneStack.peek());
+ applyCSS();
+ }
stage.show();
}
diff --git a/src/main/java/envoy/client/ui/Startup.java b/src/main/java/envoy/client/ui/Startup.java
index 1b5397d..55afb40 100644
--- a/src/main/java/envoy/client/ui/Startup.java
+++ b/src/main/java/envoy/client/ui/Startup.java
@@ -123,6 +123,7 @@ public final class Startup extends Application {
final var sceneContext = new SceneContext(stage);
sceneContext.load(SceneContext.SceneInfo.CHAT_SCENE);
sceneContext.getController().initializeData(sceneContext, localDB, client, writeProxy);
+
stage.setTitle("Envoy");
stage.setMinHeight(400);
stage.setMinWidth(350);
@@ -137,7 +138,7 @@ public final class Startup extends Application {
* {@inheritDoc}
*/
@Override
- public void stop() throws Exception {
+ public void stop() {
try {
// Save Settings and PersistentLocalDB on shutdown
logger.info("Closing connection...");