diff options
author | Dan Williams <dcbw@redhat.com> | 2007-07-15 16:37:59 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2007-07-15 16:37:59 (GMT) |
commit | eaf5845b922d67ee9c5506ee7bad01ba12d3f455 (patch) | |
tree | 6347deb17ebb0628bfb83cb395213157df4f49a5 | |
parent | eb6bf8ecae10abfe6038982268866c750a838097 (diff) |
Fix buddy re-appear by actually forgetting about buddies when they go away
-rw-r--r-- | src/buddy.py | 2 | ||||
-rw-r--r-- | src/presenceservice.py | 1 |
2 files changed, 3 insertions, 0 deletions
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: |