diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp index c1855fc49..1d20b43eb 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp @@ -483,6 +483,9 @@ void RepliesWidget::setupTopicViewer() { } else { refreshReplies(); refreshTopBarActiveChat(); + if (_topic) { + subscribeToPinnedMessages(); + } } _inner->update(); } @@ -533,23 +536,27 @@ void RepliesWidget::subscribeToTopic() { }, _topicLifetime); if (!_topic->creating()) { - using EntryUpdateFlag = Data::EntryUpdate::Flag; - session().changes().entryUpdates( - EntryUpdateFlag::HasPinnedMessages - ) | rpl::start_with_next([=](const Data::EntryUpdate &update) { - if (_pinnedTracker - && (update.flags & EntryUpdateFlag::HasPinnedMessages) - && (_topic == update.entry.get())) { - checkPinnedBarState(); - } - }, lifetime()); - - setupPinnedTracker(); + subscribeToPinnedMessages(); } _cornerButtons.updateUnreadThingsVisibility(); } +void RepliesWidget::subscribeToPinnedMessages() { + using EntryUpdateFlag = Data::EntryUpdate::Flag; + session().changes().entryUpdates( + EntryUpdateFlag::HasPinnedMessages + ) | rpl::start_with_next([=](const Data::EntryUpdate &update) { + if (_pinnedTracker + && (update.flags & EntryUpdateFlag::HasPinnedMessages) + && (_topic == update.entry.get())) { + checkPinnedBarState(); + } + }, lifetime()); + + setupPinnedTracker(); +} + void RepliesWidget::setTopic(Data::ForumTopic *topic) { if (_topic == topic) { return; diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.h b/Telegram/SourceFiles/history/view/history_view_replies_section.h index 4d7320544..214cc749f 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.h +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.h @@ -214,6 +214,7 @@ private: void setupRootView(); void setupTopicViewer(); void subscribeToTopic(); + void subscribeToPinnedMessages(); void setTopic(Data::ForumTopic *topic); void setupDragArea(); void setupShortcuts();