From b5fdb3d0db3feb35d83cdc61d04d749cdfbcd6f6 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Thu, 10 Oct 2024 22:03:30 +0200 Subject: [PATCH] Fix transitioning from invitation page to normal room page --- src/roommanager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/roommanager.cpp b/src/roommanager.cpp index c93b8ef0b..4a1c7cdc9 100644 --- a/src/roommanager.cpp +++ b/src/roommanager.cpp @@ -303,7 +303,8 @@ void RoomManager::visitRoom(Room *r, const QString &eventId) return; } - if (m_currentRoom && m_currentRoom->id() == room->id()) { + // It's important that we compare room *objects* here, not just room *ids*, since we need to deal with the object changing when going invite -> joined + if (m_currentRoom && m_currentRoom == room) { Q_EMIT goToEvent(eventId); } else { setCurrentRoom(room->id()); @@ -437,6 +438,11 @@ void RoomManager::setConnection(NeoChatConnection *connection) connect(m_connection, &NeoChatConnection::directChatAvailable, this, [this](Quotient::Room *directChat) { resolveResource(directChat->id()); }); + connect(m_connection, &NeoChatConnection::joinedRoom, this, [this](const auto &room, const auto &previousRoom) { + if (m_currentRoom == previousRoom) { + resolveResource(room->id()); + } + }); } Q_EMIT connectionChanged();