diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-10-19 14:12:55 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-10-19 14:12:55 (GMT) |
commit | 36e535a29aea17b6f49ae7e3c48d3f055e1bde1b (patch) | |
tree | 7ad31b3a8bd65d09e74c68129bd99495fd1d75b2 /shell | |
parent | 62659e280638e8b4a7509dbb1a6c6cd8c601bd7f (diff) |
More fixes
Diffstat (limited to 'shell')
-rw-r--r-- | shell/model/MeshModel.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/shell/model/MeshModel.py b/shell/model/MeshModel.py index f65b980..908a5f9 100644 --- a/shell/model/MeshModel.py +++ b/shell/model/MeshModel.py @@ -86,7 +86,11 @@ class MeshModel(gobject.GObject): if cur_activity == None: self.emit('buddy-moved', buddy_model, None) - elif self._activities.has_key(cur_activity.get_id()): + else: + self._notify_buddy_change(buddy_model, cur_activity) + + def _notify_buddy_change(self, buddy_model, cur_activity): + if self._activities.has_key(cur_activity.get_id()): activity_model = self._activities[cur_activity.get_id()] self.emit('buddy-moved', buddy_model, activity_model) @@ -97,6 +101,10 @@ class MeshModel(gobject.GObject): self._buddies[model.get_name()] = model self.emit('buddy-added', model) + cur_activity = buddy.get_current_activity() + if cur_activity: + self._notify_buddy_change(model, cur_activity) + def _buddy_disappeared_cb(self, pservice, buddy): self.emit('buddy-removed', buddy) del self._buddies[buddy.get_name()] @@ -123,8 +131,9 @@ class MeshModel(gobject.GObject): for buddy in self._pservice.get_buddies(): cur_activity = buddy.get_current_activity() - if cur_activity == activity: - buddy_model = self._buddies[buddy.get_name()] + name = buddy.get_name() + if cur_activity == activity and self._buddies.has_key(name): + buddy_model = self._buddies[name] self.emit('buddy-moved', buddy, model) def _activity_disappeared_cb(self, pservice, activity): |