From a7c9a1ab34529bc915b9d521c5ea6d943f97bf27 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 23 Nov 2021 15:40:15 +0400 Subject: [PATCH] Fix chats list forwarded messages sender. --- Telegram/SourceFiles/history/history_item.cpp | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 0ad52d4551..14af5c11e0 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -974,22 +974,29 @@ ItemPreview HistoryItem::toPreview(ToPreviewOptions options) const { } return {}; }(); + const auto fromSender = [](not_null sender) { + return sender->isSelf() + ? tr::lng_from_you(tr::now) + : sender->shortName(); + }; + const auto fromForwarded = [&]() -> std::optional { + if (const auto forwarded = Get()) { + return forwarded->originalSender + ? fromSender(forwarded->originalSender) + : forwarded->hiddenSenderInfo->name; + } + return {}; + }; const auto sender = [&]() -> std::optional { - const auto fromSender = [](not_null sender) { - return sender->isSelf() - ? tr::lng_from_you(tr::now) - : sender->shortName(); - }; if (options.hideSender || isPost() || isEmpty()) { return {}; } else if (!_history->peer->isUser()) { - return fromSender(displayFrom()); - } else if (_history->peer->isSelf()) { - if (const auto forwarded = Get()) { - return forwarded->originalSender - ? fromSender(forwarded->originalSender) - : forwarded->hiddenSenderInfo->name; + if (const auto from = displayFrom()) { + return fromSender(from); } + return fromForwarded(); + } else if (_history->peer->isSelf()) { + return fromForwarded(); } return {}; }();