From 1b25101beff88e77d3a21b6783adafe6ffcb1fed Mon Sep 17 00:00:00 2001 From: nathan Date: Sat, 10 Nov 2018 15:57:19 +0100 Subject: [PATCH] Better checks when constructing the internal system tray class --- src/dorkbox/systemTray/SystemTray.java | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/dorkbox/systemTray/SystemTray.java b/src/dorkbox/systemTray/SystemTray.java index 9bcc52f..7ee2cf9 100644 --- a/src/dorkbox/systemTray/SystemTray.java +++ b/src/dorkbox/systemTray/SystemTray.java @@ -1054,18 +1054,8 @@ class SystemTray { systemTray = new SystemTray(); // AWT/Swing must be constructed on the EDT however... - if (JavaFX.isLoaded || - Swt.isLoaded || - (isNix && (isTrayType(trayType, TrayType.GtkStatusIcon) || isTrayType(trayType, TrayType.AppIndicator))) || - isTrayType(trayType, TrayType.WindowsNotifyIcon)) { - - try { - reference.set((Tray) trayType.getConstructors()[0].newInstance(systemTray)); - } catch (Exception e) { - logger.error("Unable to create tray type: '" + trayType.getSimpleName() + "'", e); - } - } - else if (isTrayType(trayType, TrayType.Swing) || isTrayType(trayType, TrayType.AWT)) { + if (!JavaFX.isLoaded && !Swt.isLoaded && + (isTrayType(trayType, TrayType.Swing) || isTrayType(trayType, TrayType.AWT))) { // have to construct swing stuff inside the swing EDT final Class finalTrayType = trayType; SwingUtil.invokeAndWait(new Runnable() { @@ -1081,7 +1071,11 @@ class SystemTray { }); } else { - logger.error("Unable to create tray type: '{}'. Aborting!", trayType.getSimpleName()); + try { + reference.set((Tray) trayType.getConstructors()[0].newInstance(systemTray)); + } catch (Exception e) { + logger.error("Unable to create tray type: '" + trayType.getSimpleName() + "'", e); + } } } catch (Exception e) { logger.error("Unable to create tray type: '{}'", trayType.getSimpleName(), e);