Guard by widget instead of session.
This commit is contained in:
@@ -1062,14 +1062,15 @@ void Widget::setupTopBarSuggestions(not_null<Ui::VerticalLayout*> 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<Data::Folder*>(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<Ui::VerticalLayout*> 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<Ui::RpWidget> *raw) {
|
||||
if (raw) {
|
||||
|
||||
Reference in New Issue
Block a user