diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index 39c7774d9..6eed91676 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -1900,6 +1900,7 @@ void HistoryMessage::changeRepliesCount( } } refreshRepliesText(views); + history()->owner().notifyItemDataChange(this); } void HistoryMessage::setUnreadRepliesCount( diff --git a/Telegram/SourceFiles/history/view/history_view_bottom_info.cpp b/Telegram/SourceFiles/history/view/history_view_bottom_info.cpp index e94524ad1..fdcf5b5a7 100644 --- a/Telegram/SourceFiles/history/view/history_view_bottom_info.cpp +++ b/Telegram/SourceFiles/history/view/history_view_bottom_info.cpp @@ -23,11 +23,11 @@ BottomInfo::BottomInfo(Data &&data) : _data(std::move(data)) { layout(); } -void BottomInfo::update(Data &&data) { +void BottomInfo::update(Data &&data, int availableWidth) { _data = std::move(data); layout(); if (!_size.isEmpty()) { - resizeToWidth(_size.width()); + resizeToWidth(std::min(optimalSize().width(), availableWidth)); } } @@ -165,6 +165,7 @@ int BottomInfo::resizeToWidth(int newWidth) { void BottomInfo::layout() { layoutDateText(); layoutViewsText(); + layoutRepliesText(); layoutReactionsText(); countOptimalSize(); } @@ -252,6 +253,11 @@ void BottomInfo::countOptimalSize() { + _views.maxWidth() + st::historyViewsWidth; } + if (!_replies.isEmpty()) { + width += st::historyViewsSpace + + _replies.maxWidth() + + st::historyViewsWidth; + } if (!_reactions.isEmpty()) { width += st::historyReactionsSkip + _reactions.maxWidth(); } diff --git a/Telegram/SourceFiles/history/view/history_view_bottom_info.h b/Telegram/SourceFiles/history/view/history_view_bottom_info.h index e7ffd27f0..2731a2e32 100644 --- a/Telegram/SourceFiles/history/view/history_view_bottom_info.h +++ b/Telegram/SourceFiles/history/view/history_view_bottom_info.h @@ -42,7 +42,7 @@ public: }; explicit BottomInfo(Data &&data); - void update(Data &&data); + void update(Data &&data, int availableWidth); [[nodiscard]] QSize optimalSize() const; [[nodiscard]] QSize size() const; diff --git a/Telegram/SourceFiles/history/view/history_view_message.cpp b/Telegram/SourceFiles/history/view/history_view_message.cpp index d947dfae8..681784d46 100644 --- a/Telegram/SourceFiles/history/view/history_view_message.cpp +++ b/Telegram/SourceFiles/history/view/history_view_message.cpp @@ -1808,7 +1808,7 @@ bool Message::isSignedAuthorElided() const { void Message::itemDataChanged() { const auto was = _bottomInfo.size(); - _bottomInfo.update(BottomInfoDataFromMessage(this)); + _bottomInfo.update(BottomInfoDataFromMessage(this), width()); if (was != _bottomInfo.size()) { history()->owner().requestViewResize(this); } else {