aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYana Stamcheva <yana@jitsi.org>2010-10-28 14:04:38 +0000
committerYana Stamcheva <yana@jitsi.org>2010-10-28 14:04:38 +0000
commitc3ba4a5333e1aa8d7b67c451143caffb51650f02 (patch)
tree1cbb8beef8b9d31a96360ea5cad39919709c5983
parent712eb0dcce27d5983307ac9cdf5dd21a1f7c44a0 (diff)
downloadjitsi-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.
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/MainFrame.java1
-rw-r--r--src/net/java/sip/communicator/impl/osdependent/OsDependentActivator.java11
-rw-r--r--src/net/java/sip/communicator/impl/osdependent/macosx/MacOSXDockIcon.java39
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);
+ }
+ });
+ }
+ }
+}