diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-03-23 12:46:46 +0800 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-03-23 12:46:46 +0800 |
commit | 1d431d242ed66a5ef3640fc927ffdeaaac14a882 (patch) | |
tree | 63d4a82bdb4ba9bb0e38e1dbfc49135fff6aaeba /libempathy/empathy-individual-manager.c | |
parent | f9c69dcf82745e7d82673c5d11f8969fa2709eb7 (diff) | |
download | gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.tar gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.tar.gz gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.tar.bz2 gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.tar.lz gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.tar.xz gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.tar.zst gsoc2013-empathy-1d431d242ed66a5ef3640fc927ffdeaaac14a882.zip |
Really remove user from the blocked list when readding them
Previous commit in 161c9a2381a9c2df45ef8df81e8b680ce41b5c64 would have worked,
if not for Folks. And it turns out the CM I tested against already happens to
forget the blocked status if you readd a contact, so it looked like it was
working.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=645487
Diffstat (limited to 'libempathy/empathy-individual-manager.c')
-rw-r--r-- | libempathy/empathy-individual-manager.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c index 8341b697e..fd0125f75 100644 --- a/libempathy/empathy-individual-manager.c +++ b/libempathy/empathy-individual-manager.c @@ -389,6 +389,7 @@ empathy_individual_manager_add_from_contact (EmpathyIndividualManager *self, EmpathyContact *contact) { EmpathyIndividualManagerPriv *priv; + EmpathyContactManager *contact_manager; FolksBackendStore *backend_store; FolksBackend *backend; FolksPersonaStore *persona_store; @@ -443,6 +444,19 @@ empathy_individual_manager_add_from_contact (EmpathyIndividualManager *self, g_hash_table_destroy (details); + /* unblock the EmpathyContact */ + contact_manager = empathy_contact_manager_dup_singleton (); + + if (empathy_contact_manager_get_flags_for_connection (contact_manager, + empathy_contact_get_connection (contact)) & + EMPATHY_CONTACT_LIST_CAN_BLOCK) + { + empathy_contact_list_set_blocked (EMPATHY_CONTACT_LIST (contact_manager), + contact, FALSE, FALSE); + } + + g_object_unref (contact_manager); + finish: tp_clear_object (&backend); tp_clear_object (&backend_store); |