diff --git a/gui/griffon-app/controllers/com/muwire/gui/OptionsController.groovy b/gui/griffon-app/controllers/com/muwire/gui/OptionsController.groovy index d29acd4c..484f0f70 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/OptionsController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/OptionsController.groovy @@ -12,6 +12,7 @@ import javax.annotation.Nonnull import javax.swing.JFileChooser import javax.swing.JOptionPane import java.awt.Font +import java.awt.SystemTray import com.muwire.core.Core import com.muwire.core.MuWireSettings @@ -238,9 +239,11 @@ class OptionsController { model.storeSearchHistory = storeSearchHistory uiSettings.storeSearchHistory = storeSearchHistory - uiSettings.exitOnClose = model.exitOnClose - if (model.closeDecisionMade) - uiSettings.closeWarning = false + if (SystemTray.isSupported()) { + uiSettings.exitOnClose = model.exitOnClose + if (model.closeDecisionMade) + uiSettings.closeWarning = false + } saveUISettings() diff --git a/gui/griffon-app/lifecycle/Initialize.groovy b/gui/griffon-app/lifecycle/Initialize.groovy index 74128050..e4903b26 100644 --- a/gui/griffon-app/lifecycle/Initialize.groovy +++ b/gui/griffon-app/lifecycle/Initialize.groovy @@ -135,7 +135,7 @@ class Initialize extends AbstractLifecycleHandler { System.setProperty("apple.eawt.quitStrategy", "CLOSE_ALL_WINDOWS"); - if (SystemTray.isSupported() && (SystemVersion.isMac() || SystemVersion.isWindows())) { + if (SystemTray.isSupported()) { try { def tray = SystemTray.getSystemTray() def url = Initialize.class.getResource("/MuWire-16x16.png") diff --git a/gui/griffon-app/views/com/muwire/gui/OptionsView.groovy b/gui/griffon-app/views/com/muwire/gui/OptionsView.groovy index 35e8e04c..b5781f4a 100644 --- a/gui/griffon-app/views/com/muwire/gui/OptionsView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/OptionsView.groovy @@ -18,6 +18,7 @@ import com.muwire.core.Core import java.awt.BorderLayout import java.awt.GridBagConstraints +import java.awt.SystemTray import java.awt.event.WindowAdapter import java.awt.event.WindowEvent @@ -277,11 +278,14 @@ class OptionsView { label(text : trans("OPTIONS_CLEAR_FINISHED_UPLOADS"), constraints:gbc(gridx:0, gridy:4, anchor: GridBagConstraints.LINE_START, weightx : 100)) clearUploadsCheckbox = checkBox(selected : bind {model.clearUploads}, constraints : gbc(gridx:1, gridy: 4, anchor:GridBagConstraints.LINE_END)) - label(text : trans("OPTIONS_WHEN_CLOSING_MUWIRE"), constraints : gbc(gridx: 0, gridy : 5, anchor : GridBagConstraints.LINE_START, weightx: 100)) - panel (constraints : gbc(gridx:1, gridy: 5, anchor : GridBagConstraints.LINE_END)) { - buttonGroup(id : "closeBehaviorGroup") - radioButton(text : trans("OPTIONS_MINIMIZE_TO_TRAY"), selected : bind {!model.exitOnClose}, buttonGroup: closeBehaviorGroup, minimizeOnCloseAction) - radioButton(text : trans("EXIT"), selected : bind {model.exitOnClose}, buttonGroup : closeBehaviorGroup, exitOnCloseAction) + + if (SystemTray.isSupported()) { + label(text : trans("OPTIONS_WHEN_CLOSING_MUWIRE"), constraints : gbc(gridx: 0, gridy : 5, anchor : GridBagConstraints.LINE_START, weightx: 100)) + panel (constraints : gbc(gridx:1, gridy: 5, anchor : GridBagConstraints.LINE_END)) { + buttonGroup(id : "closeBehaviorGroup") + radioButton(text : trans("OPTIONS_MINIMIZE_TO_TRAY"), selected : bind {!model.exitOnClose}, buttonGroup: closeBehaviorGroup, minimizeOnCloseAction) + radioButton(text : trans("EXIT"), selected : bind {model.exitOnClose}, buttonGroup : closeBehaviorGroup, exitOnCloseAction) + } } } panel (constraints : gbc(gridx: 0, gridy: 3, weighty: 100))