diff --git a/gui/griffon-app/lifecycle/Initialize.groovy b/gui/griffon-app/lifecycle/Initialize.groovy index e4903b26..aa057312 100644 --- a/gui/griffon-app/lifecycle/Initialize.groovy +++ b/gui/griffon-app/lifecycle/Initialize.groovy @@ -146,16 +146,10 @@ class Initialize extends AbstractLifecycleHandler { def exit = new MenuItem(Translator.trans("EXIT")) exit.addActionListener({ - application.getWindowManager().findWindow("main-frame").setVisible(false) - application.getWindowManager().findWindow("shutdown-window").setVisible(true) - Core core = application.getContext().get("core") - if (core != null) { - Thread t = new Thread({ - core.shutdown() - application.shutdown() - }as Runnable) - t.start() - } else + def mainFrame = application.getMvcGroupManager().findGroup("MainFrame") + if (mainFrame != null) + mainFrame.view.closeApplication() + else application.shutdown() tray.remove(trayIcon) }) diff --git a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy index ddbd76b8..ce08ff28 100644 --- a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy @@ -1517,7 +1517,7 @@ class MainFrameView { rv } - private void closeApplication() { + void closeApplication() { Core core = application.getContext().get("core") def tabbedPane = builder.getVariable("result-tabs") @@ -1531,17 +1531,16 @@ class MainFrameView { settings.mainFrameX = mainFrame.getSize().width settings.mainFrameY = mainFrame.getSize().height mainFrame.setVisible(false) - application.getWindowManager().findWindow("shutdown-window").setVisible(true) + application.getWindowManager().findWindow("shutdown-window")?.setVisible(true) if (core != null) { Thread t = new Thread({ core.shutdown() application.shutdown() }as Runnable) t.start() + File uiPropsFile = new File(core.home, "gui.properties") + uiPropsFile.withOutputStream { settings.write(it) } } - - File uiPropsFile = new File(core.home, "gui.properties") - uiPropsFile.withOutputStream { settings.write(it) } } private static class TreeExpansions implements TreeExpansionListener {