diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | src/activity.py | 8 |
2 files changed, 9 insertions, 1 deletions
@@ -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. |