From 6f82e92f2c5c1ac7544de2c919e0a4716713a2f4 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Mon, 4 Mar 2024 17:52:06 +0100 Subject: [PATCH] fix: properly overwrite loaded state for partial loaded rooms Otherwise invites, which get converted to normal rooms, might still have old member events set in memory, that don't match the current state. --- lib/src/client.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/src/client.dart b/lib/src/client.dart index 4ba8ce9b..e84dd1c4 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -2463,6 +2463,10 @@ class Client extends MatrixApi { final importantOrRoomLoaded = eventUpdate.type == EventUpdateType.inviteState || !room.partial || + // make sure we do overwrite events we have already loaded. + room.states[stateEvent.type] + ?.containsKey(stateEvent.stateKey ?? '') == + true || importantStateEvents.contains(stateEvent.type); if ((noMessageOrNoEdit || editingLastEvent || consecutiveEdit) && importantOrRoomLoaded) {