Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2007-09-12 13:07:49 (GMT)
committer Simon McVittie <simon.mcvittie@collabora.co.uk>2007-09-12 13:07:49 (GMT)
commit420ac5d23687a7b830ca4e1a30174967e9bfd8d8 (patch)
tree619775bb42445852a1fd658210e0f3bef8745ff6
parent03353625f0c05e5f3e0194016ad183fcee5f5f93 (diff)
Avoid Gabble invite-only activities disappearing from the mesh view when we join them (#3369)
-rw-r--r--NEWS2
-rw-r--r--src/activity.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 43a1217..7e2e2df 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+* #3369: avoid Gabble invite-only activities disappearing from the
+ mesh view when we join them (smcv)
* #3370: fix error reporting in logs by working around dbus-python bug#12403
(smcv)
diff --git a/src/activity.py b/src/activity.py
index 0bc2c40..4f8e61d 100644
--- a/src/activity.py
+++ b/src/activity.py
@@ -994,7 +994,13 @@ class Activity(ExportedGObject):
for handle in removed:
buddy = self._handle_to_buddy.pop(handle, None)
removed_buddies.add(buddy)
- self._remove_buddies(removed_buddies)
+ # If we're not in the room yet, the "removal" may be spurious -
+ # Gabble removes the inviter from members at the same time it adds
+ # us to local-pending. We'll catch up anyway when we join the room and
+ # do the apparent<->reality sync, so just don't remove anyone until
+ # we've joined.
+ if self._joined:
+ self._remove_buddies(removed_buddies)
# if we were among those removed, we'll have to start believing
# the spoofable PEP-based activity tracking again.