From eaf5845b922d67ee9c5506ee7bad01ba12d3f455 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Sun, 15 Jul 2007 16:37:59 +0000 Subject: Fix buddy re-appear by actually forgetting about buddies when they go away --- diff --git a/src/buddy.py b/src/buddy.py index 4528c6b..3945aed 100644 --- a/src/buddy.py +++ b/src/buddy.py @@ -335,6 +335,8 @@ class Buddy(ExportedGObject): # the Owner can't disappear - that would be silly if not self._handles and not self._owner: self.emit('disappeared') + # Stop exporting a dbus service + self.remove_from_connection() @dbus.service.signal(_BUDDY_INTERFACE, signature='sou') def TelepathyHandleRemoved(self, tp_conn_name, tp_conn_path, handle): diff --git a/src/presenceservice.py b/src/presenceservice.py index 9c57062..0cc1efb 100644 --- a/src/presenceservice.py +++ b/src/presenceservice.py @@ -416,6 +416,7 @@ class PresenceService(ExportedGObject): def _buddy_disappeared_cb(self, buddy): if buddy.props.valid: self._buddy_validity_changed_cb(buddy, False) + self._buddies.pop(buddy.props.objid, None) def _contacts_offline(self, tp, handles): for handle in handles: -- cgit v0.9.1