diff --git a/Telegram/SourceFiles/calls/calls_group_members.cpp b/Telegram/SourceFiles/calls/calls_group_members.cpp index a68dcd754..9d4b1eb9c 100644 --- a/Telegram/SourceFiles/calls/calls_group_members.cpp +++ b/Telegram/SourceFiles/calls/calls_group_members.cpp @@ -750,7 +750,21 @@ void MembersController::updateRow( if (row->speaking()) { delegate()->peerListPrependRow(std::move(row)); } else { + static constexpr auto kInvited = Row::State::Invited; + const auto reorder = [&] { + const auto count = delegate()->peerListFullRowsCount(); + if (!count) { + return false; + } + const auto row = delegate()->peerListRowAt(count - 1).get(); + return (static_cast(row)->state() == kInvited); + }(); delegate()->peerListAppendRow(std::move(row)); + if (reorder) { + delegate()->peerListPartitionRows([](const PeerListRow &row) { + return static_cast(row).state() != kInvited; + }); + } } delegate()->peerListRefreshRows(); }