Fix LoginScene popping
This commit is contained in:
parent
8b204b3715
commit
d0c8c685ab
@ -124,8 +124,12 @@ public final class SceneContext {
|
||||
* @since Envoy Client v0.1-beta
|
||||
*/
|
||||
public void pop() {
|
||||
if (!sceneStack.isEmpty()) sceneStack.pop();
|
||||
if (!controllerStack.isEmpty()) controllerStack.pop();
|
||||
|
||||
// Pop scene and controller
|
||||
sceneStack.pop();
|
||||
controllerStack.pop();
|
||||
|
||||
// Apply new scene if present
|
||||
if (!sceneStack.isEmpty()) {
|
||||
final var newScene = sceneStack.peek();
|
||||
stage.setScene(newScene);
|
||||
@ -160,4 +164,10 @@ public final class SceneContext {
|
||||
* @since Envoy Client v0.1-beta
|
||||
*/
|
||||
public Stage getStage() { return stage; }
|
||||
|
||||
/**
|
||||
* @return whether the scene stack is empty
|
||||
* @since Envoy Client v0.2-beta
|
||||
*/
|
||||
public boolean isEmpty() { return sceneStack.isEmpty(); }
|
||||
}
|
||||
|
@ -172,7 +172,6 @@ public final class Startup extends Application {
|
||||
try {
|
||||
localDB.initializeUserStorage();
|
||||
localDB.loadUserData();
|
||||
context.initWriteProxy();
|
||||
} catch (final FileNotFoundException e) {
|
||||
// The local database file has not yet been created, probably first login
|
||||
} catch (final Exception e) {
|
||||
@ -180,6 +179,7 @@ public final class Startup extends Application {
|
||||
logger.log(Level.WARNING, "Could not load local database: ", e);
|
||||
}
|
||||
|
||||
context.initWriteProxy();
|
||||
localDB.synchronize();
|
||||
|
||||
if (client.isOnline()) context.getWriteProxy().flushCache();
|
||||
@ -193,8 +193,11 @@ public final class Startup extends Application {
|
||||
.forEach(u -> u.setStatus(UserStatus.OFFLINE));
|
||||
|
||||
final var stage = context.getStage();
|
||||
|
||||
// Pop LoginScene if present
|
||||
if (!context.getSceneContext().isEmpty()) context.getSceneContext().pop();
|
||||
|
||||
// Load ChatScene
|
||||
context.getSceneContext().pop();
|
||||
stage.setMinHeight(400);
|
||||
stage.setMinWidth(843);
|
||||
context.getSceneContext().load(SceneContext.SceneInfo.CHAT_SCENE);
|
||||
|
Reference in New Issue
Block a user