From 6989eab74ebb5c4eb3a26b5d68fc69f8ecc8d782 Mon Sep 17 00:00:00 2001 From: Ingo Bauersachs Date: Sun, 29 May 2016 13:57:56 +0200 Subject: [PATCH] Check if the systray is initialized before hiding the main frame --- src/net/java/sip/communicator/impl/gui/main/MainFrame.java | 3 ++- .../impl/osdependent/jdic/SystrayServiceJdicImpl.java | 3 ++- .../sip/communicator/service/systray/SystrayService.java | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java index a8ee80a6e..fb7e01c3d 100644 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -1920,7 +1920,8 @@ protected void windowClosing(WindowEvent event) // On Mac systems the application is not quited on window close, so we // don't need to warn the user. if (!GuiActivator.getUIService().getExitOnMainWindowClose() - && !OSUtils.IS_MAC) + && !OSUtils.IS_MAC + && GuiActivator.getSystrayService().checkInitialized()) { SwingUtilities.invokeLater(new Runnable() { diff --git a/src/net/java/sip/communicator/impl/osdependent/jdic/SystrayServiceJdicImpl.java b/src/net/java/sip/communicator/impl/osdependent/jdic/SystrayServiceJdicImpl.java index f774b234a..94e6307f2 100644 --- a/src/net/java/sip/communicator/impl/osdependent/jdic/SystrayServiceJdicImpl.java +++ b/src/net/java/sip/communicator/impl/osdependent/jdic/SystrayServiceJdicImpl.java @@ -469,7 +469,8 @@ else if (originalDockImage != null) } } - private boolean checkInitialized() + @Override + public boolean checkInitialized() { if (!initialized) logger.error("Systray not init"); diff --git a/src/net/java/sip/communicator/service/systray/SystrayService.java b/src/net/java/sip/communicator/service/systray/SystrayService.java index b9ada8494..751abc6af 100644 --- a/src/net/java/sip/communicator/service/systray/SystrayService.java +++ b/src/net/java/sip/communicator/service/systray/SystrayService.java @@ -129,4 +129,10 @@ public PopupMessageHandler setActivePopupMessageHandler( * Selects the best available popup message handler */ public void selectBestPopupMessageHandler(); + + /** + * Checks if the systray icon has been initialized. + * @return True if the systray is initialized, false otherwise. + */ + public boolean checkInitialized(); }