diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp index 68368ebaa..0b3777d7a 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp @@ -330,8 +330,8 @@ State::State(not_null data, Data::StorySourcesList list) } Content State::next() { - auto result = Content(); const auto &sources = _data->sources(_list); + auto result = Content{ .total = int(sources.size()) }; result.elements.reserve(sources.size()); for (const auto &info : sources) { const auto source = _data->source(info.id); @@ -390,8 +390,10 @@ rpl::producer LastForPeer(not_null peer) { ) | rpl::map([=] { auto ids = std::vector(); auto readTill = StoryId(); + auto total = 0; if (const auto source = stories->source(peerId)) { readTill = source->readTill; + total = int(source->ids.size()); ids = ranges::views::all(source->ids) | ranges::views::reverse | ranges::views::take(kShownLastCount) @@ -420,7 +422,7 @@ rpl::producer LastForPeer(not_null peer) { } auto done = true; auto resolving = false; - auto result = Content{}; + auto result = Content{ .total = total }; for (const auto id : ids) { const auto storyId = FullStoryId{ peerId, id }; const auto maybe = stories->lookup(storyId); diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h index 24468850a..03d8b1e73 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h @@ -49,6 +49,7 @@ struct Element { struct Content { std::vector elements; + int total = 0; friend inline bool operator==( const Content &a, diff --git a/Telegram/SourceFiles/info/info_top_bar.cpp b/Telegram/SourceFiles/info/info_top_bar.cpp index 1172ea9e1..04985c617 100644 --- a/Telegram/SourceFiles/info/info_top_bar.cpp +++ b/Telegram/SourceFiles/info/info_top_bar.cpp @@ -514,7 +514,7 @@ void TopBar::setStories(rpl::producer content) { rpl::duplicate( last ) | rpl::start_with_next([=](const Content &content) { - const auto count = int(content.elements.size()); + const auto count = content.total; if (_storiesCount != count) { const auto was = (_storiesCount > 0); _storiesCount = count;