diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 470af00ec8..e0ce6f56a0 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -1062,14 +1062,15 @@ void Widget::setupTopBarSuggestions(not_null dialogs) { return; } using namespace rpl::mappers; - crl::on_main(&session(), [=, session = &session()] { - session->api().authorizations().unreviewedChanges( + crl::on_main(dialogs, [=] { + const auto owner = &session().data(); + session().api().authorizations().unreviewedChanges( ) | rpl::start_with_next([=] { updateForceDisplayWide(); }, lifetime()); - (session->data().chatsListLoaded(nullptr) + (owner->chatsListLoaded(nullptr) ? rpl::single(nullptr) - : session->data().chatsListLoadedEvents() + : owner->chatsListLoadedEvents() ) | rpl::filter(_1 == nullptr) | rpl::map([=] { auto on = rpl::combine( controller()->activeChatsFilter(), @@ -1090,9 +1091,9 @@ void Widget::setupTopBarSuggestions(not_null dialogs) { && wide && !search && !searchInPeer - && (id == session->data().chatsFilters().defaultId()); + && (id == owner->chatsFilters().defaultId()); }); - return TopBarSuggestionValue(dialogs, session, std::move(on)); + return TopBarSuggestionValue(dialogs, &session(), std::move(on)); }) | rpl::flatten_latest() | rpl::start_with_next([=]( Ui::SlideWrap *raw) { if (raw) {