diff options
author | Yana Stamcheva <yana@jitsi.org> | 2010-10-28 14:04:38 +0000 |
---|---|---|
committer | Yana Stamcheva <yana@jitsi.org> | 2010-10-28 14:04:38 +0000 |
commit | c3ba4a5333e1aa8d7b67c451143caffb51650f02 (patch) | |
tree | 1cbb8beef8b9d31a96360ea5cad39919709c5983 | |
parent | 712eb0dcce27d5983307ac9cdf5dd21a1f7c44a0 (diff) | |
download | jitsi-c3ba4a5333e1aa8d7b67c451143caffb51650f02.zip jitsi-c3ba4a5333e1aa8d7b67c451143caffb51650f02.tar.gz jitsi-c3ba4a5333e1aa8d7b67c451143caffb51650f02.tar.bz2 |
Fixes an issue with disappearing contact list window on MacOSX, reported on users mailing list by James Ward. Mac users would be now able to show the contact list window at any time by clicking on the dock icon.
3 files changed, 48 insertions, 3 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 0f1de1f..5051677 100644 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -20,7 +20,6 @@ import net.java.sip.communicator.impl.gui.event.*; import net.java.sip.communicator.impl.gui.main.call.*; import net.java.sip.communicator.impl.gui.main.chat.conference.*; import net.java.sip.communicator.impl.gui.main.contactlist.*; -import net.java.sip.communicator.impl.gui.main.contactlist.contactsource.*; import net.java.sip.communicator.impl.gui.main.menus.*; import net.java.sip.communicator.impl.gui.main.presence.*; import net.java.sip.communicator.impl.gui.utils.*; diff --git a/src/net/java/sip/communicator/impl/osdependent/OsDependentActivator.java b/src/net/java/sip/communicator/impl/osdependent/OsDependentActivator.java index 9760659..ebc0ebe 100644 --- a/src/net/java/sip/communicator/impl/osdependent/OsDependentActivator.java +++ b/src/net/java/sip/communicator/impl/osdependent/OsDependentActivator.java @@ -7,6 +7,7 @@ package net.java.sip.communicator.impl.osdependent; import net.java.sip.communicator.impl.osdependent.jdic.*; +import net.java.sip.communicator.impl.osdependent.macosx.*; import net.java.sip.communicator.service.configuration.*; import net.java.sip.communicator.service.desktop.*; import net.java.sip.communicator.service.gui.*; @@ -55,7 +56,12 @@ public class OsDependentActivator { bundleContext = bc; - try { + try + { + // Adds a MacOSX specific dock icon listener in order to show main + // contact list window on dock icon click. + MacOSXDockIcon.addDockIconListener(); + // Create the notification service implementation SystrayService systrayService = new SystrayServiceJdicImpl(); @@ -86,7 +92,8 @@ public class OsDependentActivator logger.logEntry(); } - finally { + finally + { logger.logExit(); } } diff --git a/src/net/java/sip/communicator/impl/osdependent/macosx/MacOSXDockIcon.java b/src/net/java/sip/communicator/impl/osdependent/macosx/MacOSXDockIcon.java new file mode 100644 index 0000000..35e32c0 --- /dev/null +++ b/src/net/java/sip/communicator/impl/osdependent/macosx/MacOSXDockIcon.java @@ -0,0 +1,39 @@ +package net.java.sip.communicator.impl.osdependent.macosx; + +import net.java.sip.communicator.impl.osdependent.*; + +import com.apple.eawt.*; + +/** + * MacOSX specific dock icon, which will add a dock icon listener in order to + * show the application each time user clicks on the dock icon. + * + * @author Yana Stamcheva + */ +@SuppressWarnings("deprecation") +public class MacOSXDockIcon +{ + /** + * Adds a dock icon listener in order to show the application each time user + * clicks on the dock icon. + */ + public static void addDockIconListener() + { + Application application = Application.getApplication(); + if (application != null) + { + application.addApplicationListener(new ApplicationAdapter() + { + /** + * Handles re-open application event. Shows the contact list + * window. + */ + public void handleReOpenApplication( + ApplicationEvent applicationevent) + { + OsDependentActivator.getUIService().setVisible(true); + } + }); + } + } +} |