aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorDamian Minkov <damencho@jitsi.org>2011-10-17 10:05:32 +0000
committerDamian Minkov <damencho@jitsi.org>2011-10-17 10:05:32 +0000
commit7e687f39a0923bc2b70177a1dfa63f163b82ff50 (patch)
treed53180b71c27a2677d33a8ea89043679afd8a072 /src/net
parentc5851a9a4535a66691891f3a84aa9aa5059a26d8 (diff)
downloadjitsi-7e687f39a0923bc2b70177a1dfa63f163b82ff50.zip
jitsi-7e687f39a0923bc2b70177a1dfa63f163b82ff50.tar.gz
jitsi-7e687f39a0923bc2b70177a1dfa63f163b82ff50.tar.bz2
Fixes issues with moving metacontacts.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java
index 1565176..15bca6e 100644
--- a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java
+++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java
@@ -14,6 +14,8 @@ import net.java.sip.communicator.impl.gui.main.contactlist.*;
import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.protocol.*;
+import javax.swing.*;
+
/**
* The <tt>MetaContactListSource</tt> is an abstraction of the
* <tt>MetaContactListService</tt>, which makes the correspondence between a
@@ -77,11 +79,22 @@ public class MetaContactListSource
* create an <tt>UIContact</tt>
* @return an <tt>UIContact</tt> for the given <tt>metaContact</tt>
*/
- public static UIContact createUIContact(MetaContact metaContact)
+ public static UIContact createUIContact(final MetaContact metaContact)
{
- MetaUIContact descriptor
+ final MetaUIContact descriptor
= new MetaUIContact(metaContact);
- metaContact.setData(UI_CONTACT_DATA_KEY, descriptor);
+
+ // fixes an issue with moving meta contacts where removeContact
+ // will set data to null in swing thread and it will be after we have
+ // set the data here, so we also move this set to the swing thread
+ // to order the calls of setData.
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ metaContact.setData(UI_CONTACT_DATA_KEY, descriptor);
+ }
+ });
return descriptor;
}