From e7d4aec6ecf65ad970c341e30949218e4472944a Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sun, 21 Nov 2021 07:06:37 +0100 Subject: Only mark as direct, if invite was direct --- src/timeline/RoomlistModel.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/timeline/RoomlistModel.cpp') diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp index 7d727659..79324628 100644 --- a/src/timeline/RoomlistModel.cpp +++ b/src/timeline/RoomlistModel.cpp @@ -586,8 +586,9 @@ RoomlistModel::initializeRooms() } invites = cache::client()->invites(); - for (const auto &id : invites.keys()) + for (const auto &id : invites.keys()) { roomids.push_back(id); + } for (const auto &id : cache::client()->roomIds()) addRoom(id, true); @@ -626,9 +627,17 @@ RoomlistModel::acceptInvite(QString roomid) { if (invites.contains(roomid)) { // Don't remove invite yet, so that we can switch to it + auto members = cache::getMembersFromInvite(roomid.toStdString(), 0, -1); + auto local = utils::localUser(); + for (const auto &m : members) { + if (m.user_id == local && m.is_direct) { + nhlog::db()->info("marking {} as direct", roomid.toStdString()); + utils::markRoomAsDirect(roomid, members); + break; + } + } + ChatPage::instance()->joinRoom(roomid); - utils::markRoomAsDirect(roomid, - cache::client()->getMembersFromInvite(roomid.toStdString(), 0, -1)); } } void -- cgit 1.5.1