From fec08174e05bcac7636bf133c8b49af54ef649af Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 8 Jul 2026 10:22:59 +0400 Subject: [PATCH] Show the community arrow on linked bot rows. --- Telegram/SourceFiles/dialogs/dialogs_row.cpp | 12 ++++++++---- Telegram/SourceFiles/dialogs/dialogs_widget.cpp | 6 +----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_row.cpp b/Telegram/SourceFiles/dialogs/dialogs_row.cpp index 04261cd64e..79a1fb2d1f 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_row.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_row.cpp @@ -395,7 +395,9 @@ void Row::updateCornerBadgeShown( const auto nextLayer = [&] { if (hasUnreadBadgesAbove) { return kNoneLayer; - } else if (user && Data::IsUserOnline(user, now)) { + } else if (user + && (Data::IsUserOnline(user, now) + || (!insideCommunity && user->linkedCommunityId()))) { return kTopLayer; } else if (channel && (Data::ChannelHasActiveCall(channel) @@ -731,11 +733,13 @@ void Row::paintUserpic( _cornerBadgeUserpic->cacheHidden = QImage(); } const auto badgeChannel = peer ? peer->asChannel() : nullptr; + const auto badgeUser = peer ? peer->asUser() : nullptr; const auto subscribed = Data::ChannelHasSubscriptionUntilDate( badgeChannel); - const auto communityMember = badgeChannel - && badgeChannel->linkedCommunityId() - && !Data::ChannelHasActiveCall(badgeChannel) + const auto communityMember = peer + && Data::PeerLinkedCommunityId(peer) + && !(badgeChannel && Data::ChannelHasActiveCall(badgeChannel)) + && !(badgeUser && Data::IsUserOnline(badgeUser)) && !subscribed && !insideCommunity; if (keyChanged diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 9c57c242c4..c922cb8394 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -963,11 +963,7 @@ void Widget::chosenRow(const ChosenRow &row) { || (row.message.fullId.msg != ShowAtUnreadMsgId)) { return nullptr; } - const auto channel = history->peer->asChannel(); - if (!channel) { - return nullptr; - } - const auto communityId = channel->linkedCommunityId(); + const auto communityId = Data::PeerLinkedCommunityId(history->peer); if (!communityId) { return nullptr; }