Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco 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)
commit36e535a29aea17b6f49ae7e3c48d3f055e1bde1b (patch)
tree7ad31b3a8bd65d09e74c68129bd99495fd1d75b2 /shell
parent62659e280638e8b4a7509dbb1a6c6cd8c601bd7f (diff)
More fixes
Diffstat (limited to 'shell')
-rw-r--r--shell/model/MeshModel.py15
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):