diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 1a1e2865f..2ff9d4fa7 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -1764,6 +1764,8 @@ bool Session::checkEntitiesAndViewsUpdate(const MTPDmessage &data) { existing->setViewsCount(data.vviews().value_or(-1)); if (const auto replies = data.vreplies()) { existing->setReplies(*replies); + } else { + existing->clearReplies(); } existing->setForwardsCount(data.vforwards().value_or(-1)); if (const auto reply = data.vreply_to()) { diff --git a/Telegram/SourceFiles/history/history_item.h b/Telegram/SourceFiles/history/history_item.h index 33053b783..4ee3cd5ef 100644 --- a/Telegram/SourceFiles/history/history_item.h +++ b/Telegram/SourceFiles/history/history_item.h @@ -287,6 +287,8 @@ public: } virtual void setReplies(const MTPMessageReplies &data) { } + virtual void clearReplies() { + } virtual void changeRepliesCount(int delta, PeerId replier) { } virtual void setReplyToTop(MsgId replyToTop) { diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index edb1939a1..3cb1d3b48 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -1631,6 +1631,21 @@ void HistoryMessage::setReplies(const MTPMessageReplies &data) { }); } +void HistoryMessage::clearReplies() { + auto views = Get(); + if (!views) { + return; + } + const auto viewsPart = views->views; + if (viewsPart.count < 0) { + RemoveComponents(HistoryMessageViews::Bit()); + } else { + *views = HistoryMessageViews(); + views->views = viewsPart; + } + history()->owner().requestItemResize(this); +} + void HistoryMessage::refreshRepliesText( not_null views, bool forceResize) { diff --git a/Telegram/SourceFiles/history/history_message.h b/Telegram/SourceFiles/history/history_message.h index dc50b6e80..a12dafcb5 100644 --- a/Telegram/SourceFiles/history/history_message.h +++ b/Telegram/SourceFiles/history/history_message.h @@ -126,6 +126,7 @@ public: void setViewsCount(int count) override; void setForwardsCount(int count) override; void setReplies(const MTPMessageReplies &data) override; + void clearReplies() override; void changeRepliesCount(int delta, PeerId replier) override; void setReplyToTop(MsgId replyToTop) override; void setRealId(MsgId newId) override;