From 8a61d7bab3b4a05202d8dcd3cb4a61b5e95589aa Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Wed, 19 May 2010 14:15:03 +0000 Subject: [PATCH] Introduce new features in currently updated OrangeExtension and fix bouncing dock icon under Snow Leopard. Update code manipulating dock icons. --- build.xml | 1 - lib/native/mac/libDock.jnilib | Bin 37796 -> 0 bytes .../mac/installer-exclude/dock.jar | Bin 5554 -> 0 bytes .../jdic/SystrayServiceJdicImpl.java | 30 +++++++++++++++--- .../impl/osdependent/osdependent.manifest.mf | 3 +- .../chatalerter/ChatAlerterActivator.java | 18 +++++++++-- .../chatalerter/chatalerter.manifest.mf | 2 +- 7 files changed, 43 insertions(+), 11 deletions(-) delete mode 100755 lib/native/mac/libDock.jnilib delete mode 100644 lib/os-specific/mac/installer-exclude/dock.jar diff --git a/build.xml b/build.xml index fde9b4eba..008579941 100644 --- a/build.xml +++ b/build.xml @@ -1789,7 +1789,6 @@ javax.swing.event, javax.swing.border"/> prefix="net/java/sip/communicator/service/desktop"/> - diff --git a/lib/native/mac/libDock.jnilib b/lib/native/mac/libDock.jnilib deleted file mode 100755 index 8acf050b22aa541066ec8d8f72b8752566979302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37796 zcmeI5U2I%O702i9Zrp9{IxYkh)Hd1_KlmZFV~D_&NVWdh)@hv7N}OV$wAbtPjlJ=H zu^)*o*=R!=DXT4Xk$9-8$Qa3r3NJ)eU-(c6s!%AZ`hWoCfr1|r*oRcAgoU6IHvj+J zd%f58+8dPznsP>&J!fXloH_Hm8)@&=oa^7N{_MI^%7^+H)Q6O6gE%yZj~3JiQ2j~` zL-a2>eGpQFfDjM@LO=)z0U;m+gn$qb0zyCt2!Z>F!0HDdy@z<6dwhn7W!E~l7g zCLYVpCdbo>T)r^gz12tSBElO(xR4us1kq**p(1`GV44HHBfac$3uE?H_c;fjbuj*k zXg=!NvR!XJgVlT2d#+jA8hp$qCThKPd~mafwT*HcABm`GGcYsxY`r-6jOGA*P(_1PBLvC#UAfMH_E;;Pj80l+Jar~*x9iPk{G7jGZMNM)Up=Nd zbmaKa$iR{H@6bVXb8X51pEWUFy)Gon!>Apodr{Z>6Y=qZbZolwY$^^FBlfzmImmAt zzQbR73|-)%_dZMm6n-z=@2110dkKBu)%_ME{C8I&v1a!Wx{t>3a?|$?`5_PoQ>m^1A^Fdz3{r5(qA`Kz^m zRty#V{{FS%+|$i7m2aunDhujL<+@s|{8=qkR@ECl_;Fg zr&$!Qt0Bhi@s}HnPc;}Ha>wx%Qm-zzu?Fq?ao&^POXW-{ zLO=)z0U;m+gn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^Vz$b$M zjx{SIjN{EXXR9STw8S}QEpcX8OPsCNGUUj1M|L>!fFln&66bu4u>aZ@+S-5P53Lt_ z)4qK?FKm}Rwytvlo^^ot(-b&vidkN#7S|MxxmYE9SY*l~_RJ&1~TDd=cgn5 zs3h8k`iK!i7C>@}i45^^bIOWNSXsra29p^X=6F0c5l>BGAd$g9>`bz5znutSo++ea zW+I)QE@W&UW-=O^a=n^7A8)3tym^*NE}k)C>148y;yLbg7P$zS1TrCV`D}ES6HVp; zm;>49c`76Egmr}33hLweIbr3nh_%U8pEVgz^*`I6PBEM1nRM23T--HPCJhql?8!_t zX7y*SXx+mx)4ditPbpn+#{u=i&ft`}lf1KgHh7qaG)E z!?rc8baQ<;lA5S3vrXjAuIuc|VR_QZZ#$U7l}}iqWO|~Iur_?nq#*=^fDjM@LO=)z z0U;m+guo}3z9+!P=Q!aw@)=z%xe>pB12 zGag8(P}qKmQt3rPK05ibgJDz_2E$5Q#>uh0uw%OelKVXk$%iI)!}d5-yM*m=C*fZO z(dK%5h%<^xoqlX9W2fBwd&>FW>i4o<;lIuKr(a(9TDXd7i8W!b1)jcppQu=EX-+V@xwFw^a7CX3-??*+H5Wu^I^UZ>l#?sz`6$3HSl6U s13BpivNR0%F@VYdB7>JAgv|MSe&?RNThD&+-uip*YA?O}G`(BzKPB7=uK)l5 diff --git a/lib/os-specific/mac/installer-exclude/dock.jar b/lib/os-specific/mac/installer-exclude/dock.jar deleted file mode 100644 index 733c2b2f6118290057cb1e04726a021fc388747c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5554 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 Y<8FsBhlh{ZD01|#5M92j6qtYi2hxF;-T(jq 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 60c1e4acc..94a837d14 100644 --- a/src/net/java/sip/communicator/impl/osdependent/jdic/SystrayServiceJdicImpl.java +++ b/src/net/java/sip/communicator/impl/osdependent/jdic/SystrayServiceJdicImpl.java @@ -6,15 +6,18 @@ */ package net.java.sip.communicator.impl.osdependent.jdic; +import com.apple.eawt.*; + +import java.awt.*; import java.awt.event.*; import java.net.*; import java.util.*; +import java.util.List; import javax.swing.*; import javax.swing.event.*; import net.java.sip.communicator.impl.osdependent.*; -import net.java.sip.communicator.impl.systray.mac.*; import net.java.sip.communicator.service.configuration.*; import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.protocol.*; @@ -106,6 +109,8 @@ public class SystrayServiceJdicImpl private URL dockIconFFC; + private Image originalDockImage = null; + private boolean initialized = false; /** @@ -507,12 +512,24 @@ else if (imageType == SystrayService.ENVELOPE_IMG_TYPE) try { - if(OSUtils.IS_MAC32) + if(OSUtils.IS_MAC) { + if(originalDockImage == null) + originalDockImage = + Application.getApplication().getDockIconImage(); + if (toChangeDockIcon != null) - Dock.setDockTileImage(toChangeDockIcon); + { + Application.getApplication().setDockIconImage( + Toolkit.getDefaultToolkit() + .getImage(toChangeDockIcon)); + } else - Dock.restoreDockTileImage(); + { + if(originalDockImage != null) + Application.getApplication().setDockIconImage( + originalDockImage); + } } } catch (Exception e) @@ -624,7 +641,10 @@ public void popupMessageClicked(SystrayPopupMessageEvent evt) private class ServiceListenerImpl implements ServiceListener { - /** implements ServiceListener.serviceChanged */ + /** + * implements ServiceListener.serviceChanged + * @param serviceEvent + */ public void serviceChanged(ServiceEvent serviceEvent) { try diff --git a/src/net/java/sip/communicator/impl/osdependent/osdependent.manifest.mf b/src/net/java/sip/communicator/impl/osdependent/osdependent.manifest.mf index 9f554f5e9..11c0aa509 100644 --- a/src/net/java/sip/communicator/impl/osdependent/osdependent.manifest.mf +++ b/src/net/java/sip/communicator/impl/osdependent/osdependent.manifest.mf @@ -5,13 +5,14 @@ Bundle-Vendor: sip-communicator.org Bundle-Version: 0.0.1 System-Bundle: yes Export-Package: net.java.sip.communicator.service.systray, - net.java.sip.communicator.service.systray.event, + net.java.sip.communicator.service.systray.event, net.java.sip.communicator.service.desktop Import-Package: org.osgi.framework, org.jdesktop.jdic.desktop, org.jdesktop.jdic.tray, com.apple.cocoa.application, com.apple.cocoa.foundation, + com.apple.eawt, net.java.sip.communicator.service.configuration, net.java.sip.communicator.service.gui, net.java.sip.communicator.service.gui.event, diff --git a/src/net/java/sip/communicator/plugin/chatalerter/ChatAlerterActivator.java b/src/net/java/sip/communicator/plugin/chatalerter/ChatAlerterActivator.java index 6ad2ff6c4..8b0356b08 100644 --- a/src/net/java/sip/communicator/plugin/chatalerter/ChatAlerterActivator.java +++ b/src/net/java/sip/communicator/plugin/chatalerter/ChatAlerterActivator.java @@ -52,13 +52,16 @@ public class ChatAlerterActivator /** * Starts this bundle. + * @param bc bundle context. + * @throws Exception */ public void start(BundleContext bc) throws Exception { try { // try to load native libs, if it fails don't do anything - Alerter.newInstance(); + if(!OSUtils.IS_MAC) + Alerter.newInstance(); } catch (Exception exception) { @@ -111,6 +114,11 @@ public void start(BundleContext bc) throws Exception } + /** + * Stops bundle. + * @param bc context. + * @throws Exception + */ public void stop(BundleContext bc) throws Exception { // start listening for newly register or removed protocol providers @@ -297,11 +305,15 @@ private void alertChatWindow() JFrame fr = (JFrame) winSource; - Alerter.newInstance().alert(fr); + if(OSUtils.IS_MAC) + com.apple.eawt.Application.getApplication() + .requestUserAttention(true); + else + Alerter.newInstance().alert(fr); } catch (Throwable ex) { - logger.error("Cannot alert chat window!"); + logger.error("Cannot alert chat window!", ex); } } diff --git a/src/net/java/sip/communicator/plugin/chatalerter/chatalerter.manifest.mf b/src/net/java/sip/communicator/plugin/chatalerter/chatalerter.manifest.mf index 3e1afa9b9..099175504 100644 --- a/src/net/java/sip/communicator/plugin/chatalerter/chatalerter.manifest.mf +++ b/src/net/java/sip/communicator/plugin/chatalerter/chatalerter.manifest.mf @@ -9,5 +9,5 @@ Import-Package: org.osgi.framework, net.java.sip.communicator.service.gui, net.java.sip.communicator.service.protocol, net.java.sip.communicator.service.protocol.event, - com.apple.cocoa.application, + com.apple.eawt, javax.swing