From 4560a834410bd8f7e48a4050aee2dd0f855648ca Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 7 May 2025 11:47:00 +0300 Subject: [PATCH] Fixed creation of new filter with selected dialog from menu. --- Telegram/SourceFiles/boxes/choose_filter_box.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/boxes/choose_filter_box.cpp b/Telegram/SourceFiles/boxes/choose_filter_box.cpp index 6630c0428b..4cd55628b0 100644 --- a/Telegram/SourceFiles/boxes/choose_filter_box.cpp +++ b/Telegram/SourceFiles/boxes/choose_filter_box.cpp @@ -316,16 +316,23 @@ void FillChooseFilterMenu( return; } const auto session = &strong->session(); - const auto count = session->data().chatsFilters().list().size(); - if ((count - 1) >= limit()) { + const auto &list = session->data().chatsFilters().list(); + if ((list.size() - 1) >= limit()) { return; } + const auto chooseNextId = [&] { + auto id = 2; + while (ranges::contains(list, id, &Data::ChatFilter::id)) { + ++id; + } + return id; + }; auto filter = Data::ChatFilter({}, {}, {}, {}, {}, { history }, {}, {}); const auto send = [=](const Data::ChatFilter &filter) { session->api().request(MTPmessages_UpdateDialogFilter( MTP_flags(MTPmessages_UpdateDialogFilter::Flag::f_filter), - MTP_int(count), + MTP_int(chooseNextId()), filter.tl() )).done([=] { session->data().chatsFilters().reload();