From 8e416d8de3b381a7d869e463125fc938d43820bb Mon Sep 17 00:00:00 2001 From: Emilio Pozuelo Monfort Date: Tue, 22 Mar 2011 14:35:34 +0000 Subject: Don't try to block personas that don't support blocking https://bugzilla.gnome.org/show_bug.cgi?id=645488 --- libempathy/empathy-individual-manager.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'libempathy') diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c index 7ae1a9004..8341b697e 100644 --- a/libempathy/empathy-individual-manager.c +++ b/libempathy/empathy-individual-manager.c @@ -548,16 +548,23 @@ empathy_individual_manager_set_blocked (EmpathyIndividualManager *self, { TpfPersona *persona = l->data; EmpathyContact *contact; + EmpathyIndividualManagerFlags flags; if (!TPF_IS_PERSONA (persona)) continue; contact = empathy_contact_dup_from_tp_contact ( tpf_persona_get_contact (persona)); - empathy_contact_set_persona (contact, FOLKS_PERSONA (persona)); - empathy_contact_list_set_blocked ( - EMPATHY_CONTACT_LIST (priv->contact_manager), - contact, blocked, abusive); + flags = empathy_individual_manager_get_flags_for_connection (self, + empathy_contact_get_connection (contact)); + + if (flags & EMPATHY_INDIVIDUAL_MANAGER_CAN_BLOCK) + { + empathy_contact_set_persona (contact, FOLKS_PERSONA (persona)); + empathy_contact_list_set_blocked ( + EMPATHY_CONTACT_LIST (priv->contact_manager), + contact, blocked, abusive); + } g_object_unref (contact); } -- cgit v1.2.3