Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/activity.py')
-rw-r--r--src/activity.py8
1 files changed, 7 insertions, 1 deletions
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.