From cf13a7ff5bcf4987d23d56669e6c984142033338 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Thu, 19 Oct 2006 14:51:13 +0200 Subject: [PATCH] Unregister the chat service on destroy. --- shell/model/BuddyModel.py | 5 +---- shell/view/ActivityHost.py | 2 +- sugar/chat/ActivityChat.py | 5 +++++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/shell/model/BuddyModel.py b/shell/model/BuddyModel.py index 32054256..651e911e 100644 --- a/shell/model/BuddyModel.py +++ b/shell/model/BuddyModel.py @@ -139,7 +139,4 @@ class BuddyModel(gobject.GObject): def __buddy_current_activity_changed_cb(self, buddy, activity=None): if not self._buddy: return - if activity: - self.emit('current-activity-changed', activity) - else: - self.emit('current-activity-changed') + self.emit('current-activity-changed', activity) diff --git a/shell/view/ActivityHost.py b/shell/view/ActivityHost.py index 4074de22..eacb30ff 100644 --- a/shell/view/ActivityHost.py +++ b/shell/view/ActivityHost.py @@ -150,6 +150,6 @@ class ActivityHost: def _activity_closed_cb(self, shell, activity): if activity == self: - self.chat_hide() + self._chat_window.destroy() self._frame_was_visible = False diff --git a/sugar/chat/ActivityChat.py b/sugar/chat/ActivityChat.py index 971b87df..a426abc2 100644 --- a/sugar/chat/ActivityChat.py +++ b/sugar/chat/ActivityChat.py @@ -26,6 +26,8 @@ class ActivityChat(GroupChat): GroupChat.__init__(self) self._chat_service = None + self.connect('destroy', self._destroy_cb) + self._activity = activity self._pservice.register_service_type(ActivityChat.SERVICE_TYPE) self._pservice.connect('service-appeared', self._service_appeared_cb) @@ -59,3 +61,6 @@ class ActivityChat(GroupChat): self._chat_service = self._pservice.share_activity(self._activity, stype=ActivityChat.SERVICE_TYPE) self._setup_stream(self._chat_service) + + def _destroy_cb(self, widget): + self._pservice.unregister_service(self._chat_service)