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)