From d5b0e10addcf4063422fce7ee55a4efc2121f2e6 Mon Sep 17 00:00:00 2001 From: Brendan Robert Date: Tue, 3 Feb 2015 23:50:23 -0600 Subject: [PATCH] Closing main window shuts down computer and exits app properly now. --- src/main/java/jace/JaceApplication.java | 9 +++++++-- src/main/java/jace/core/Computer.java | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/jace/JaceApplication.java b/src/main/java/jace/JaceApplication.java index 9785e6d..408b5d0 100644 --- a/src/main/java/jace/JaceApplication.java +++ b/src/main/java/jace/JaceApplication.java @@ -8,8 +8,8 @@ package jace; import java.io.IOException; import javafx.application.Application; +import javafx.application.Platform; import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; @@ -46,8 +46,13 @@ public class JaceApplication extends Application { } controller.connectComputer(Emulator.computer); }); + primaryStage.setOnCloseRequest(value -> { + Emulator.computer.deactivate(); + Platform.exit(); + System.exit(0); + }); } - + /** * @param args the command line arguments */ diff --git a/src/main/java/jace/core/Computer.java b/src/main/java/jace/core/Computer.java index 940e1ca..532de05 100644 --- a/src/main/java/jace/core/Computer.java +++ b/src/main/java/jace/core/Computer.java @@ -104,6 +104,12 @@ public abstract class Computer implements Reconfigurable { memory.loadRom(path); } + public void deactivate() { + cpu.suspend(); + motherboard.suspend(); + video.suspend(); + } + @InvokableAction( name = "Cold boot", description = "Process startup sequence from power-up",