diff options
author | Damian Minkov <damencho@jitsi.org> | 2011-10-17 10:05:32 +0000 |
---|---|---|
committer | Damian Minkov <damencho@jitsi.org> | 2011-10-17 10:05:32 +0000 |
commit | 7e687f39a0923bc2b70177a1dfa63f163b82ff50 (patch) | |
tree | d53180b71c27a2677d33a8ea89043679afd8a072 /src/net | |
parent | c5851a9a4535a66691891f3a84aa9aa5059a26d8 (diff) | |
download | jitsi-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.java | 19 |
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; } |