From 1377aa875cfe80937097ac74b7cccf33ea59c984 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger <asterix@lagaule.org> Date: Tue, 21 Nov 2006 20:07:18 +0000 Subject: [PATCH] count events from other resources to decide if we must remove contact from roster or not. see #2657 --- src/roster_window.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/roster_window.py b/src/roster_window.py index ed55f26f6a..e4add06e5b 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -465,11 +465,19 @@ def really_remove_contact(self, contact, account): show_offline = gajim.config.get('showoffline') show_transports = gajim.config.get('show_transports_group') + + nb_events = 0 + jid_list = [contact.jid] + if contact.get_full_jid() != contact.jid: + jid_list.append(contact.get_full_jid()) + for jid in jid_list: + # dont't count printed_chat messages + nb_events += gajim.events.get_nb_roster_events(account, jid, ['chat']) + if (_('Transports') in contact.groups and not show_transports) or \ ((contact.show in ('offline', 'error') or hide) and not show_offline and \ (not _('Transports') in contact.groups or \ - gajim.account_is_disconnected(account))) and \ - len(gajim.events.get_events(account, contact.jid, ['chat'])) == 0: + gajim.account_is_disconnected(account))) and nb_events == 0: self.remove_contact(contact, account) else: self.draw_contact(contact.jid, account) -- GitLab