From 5ad4719c08b8e8eacfa55121f95a76f57e19de98 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 24 Apr 2023 21:39:21 +0400 Subject: [PATCH] Correctly handle shareable->non-shareable conversion. --- .../SourceFiles/boxes/filters/edit_filter_box.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp b/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp index 6e88d3757d..9e0e67514f 100644 --- a/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp +++ b/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp @@ -556,11 +556,12 @@ void EditFilterBox( state->hasLinks = state->links.value() | rpl::map([=](const auto &v) { return !v.empty(); }); - if (!state->chatlist.current()) { - state->chatlist = state->hasLinks.value() | rpl::filter( - _1 - ) | rpl::take(1); - } + state->hasLinks.value() | rpl::filter( + _1 + ) | rpl::start_with_next([=] { + state->chatlist = true; + }, box->lifetime()); + const auto data = &state->rules; owner->chatsFilters().isChatlistChanged( @@ -574,6 +575,9 @@ void EditFilterBox( return; } *data = data->current().withChatlist(i->chatlist(), i->hasMyLinks()); + if (!i->chatlist() && !state->hasLinks.current()) { + state->chatlist = false; + } }, box->lifetime()); box->setWidth(st::boxWideWidth);