diff --git a/src/main/java/io/bitsquare/BitsquareUI.java b/src/main/java/io/bitsquare/BitsquareUI.java index c5071c1652..fac8a05ec9 100644 --- a/src/main/java/io/bitsquare/BitsquareUI.java +++ b/src/main/java/io/bitsquare/BitsquareUI.java @@ -109,7 +109,7 @@ public class BitsquareUI extends Application { // configure the system tray - SystemTray systemTray = new SystemTray(primaryStage, this); + SystemTray systemTray = new SystemTray(primaryStage, this::stop); primaryStage.setOnCloseRequest(e -> systemTray.hideStage()); scene.setOnKeyReleased(keyEvent -> { if (new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN).match(keyEvent)) diff --git a/src/main/java/io/bitsquare/gui/SystemTray.java b/src/main/java/io/bitsquare/gui/SystemTray.java index 5a5a8230e6..fc523eda6d 100644 --- a/src/main/java/io/bitsquare/gui/SystemTray.java +++ b/src/main/java/io/bitsquare/gui/SystemTray.java @@ -17,7 +17,6 @@ package io.bitsquare.gui; -import io.bitsquare.BitsquareUI; import io.bitsquare.gui.util.ImageUtil; import java.awt.*; @@ -43,13 +42,13 @@ public class SystemTray { public static final String HIDE_WINDOW_LABEL = "Hide exchange window"; private final Stage stage; - private final BitsquareUI application; + private final Runnable onExit; private final TrayIcon trayIcon = createTrayIcon(); private final MenuItem toggleShowHideItem = new MenuItem(HIDE_WINDOW_LABEL); - public SystemTray(Stage stage, BitsquareUI application) { + public SystemTray(Stage stage, Runnable onExit) { this.stage = stage; - this.application = application; + this.onExit = onExit; init(); } @@ -95,11 +94,7 @@ public class SystemTray { exitItem.addActionListener(e -> { self.remove(trayIcon); - try { - application.stop(); - } catch (Exception ex) { - log.error("Application failed to shut down properly.", ex); - } + onExit.run(); }); }