From 61a9d9c01d3fcaa7b37857edaf25810f6512d3cf Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 6 Nov 2023 12:47:37 +0400 Subject: [PATCH] Don't close schedule media box by outside click. --- Telegram/SourceFiles/boxes/send_files_box.cpp | 8 +++++++- Telegram/SourceFiles/history/history_widget.cpp | 3 +-- .../history/view/history_view_replies_section.cpp | 3 +-- .../history/view/history_view_scheduled_section.cpp | 3 +-- .../SourceFiles/media/stories/media_stories_reply.cpp | 7 ++----- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index efea9ad8e..613f4866b 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -427,6 +427,7 @@ void SendFilesBox::prepare() { preparePreview(); initPreview(); SetupShadowsToScrollContent(this, _scroll, _inner->heightValue()); + setCloseByOutsideClick(false); boxClosing() | rpl::start_with_next([=] { if (!_confirmed && _cancelledCallback) { @@ -1437,7 +1438,12 @@ void SendFilesBox::sendScheduled() { ? SendMenu::Type::ScheduledToUser : _sendMenuType; const auto callback = [=](Api::SendOptions options) { send(options); }; - _show->showBox(HistoryView::PrepareScheduleBox(this, type, callback)); + auto box = HistoryView::PrepareScheduleBox(this, type, callback); + const auto weak = Ui::MakeWeak(box.data()); + _show->showBox(std::move(box)); + if (const auto strong = weak.data()) { + strong->setCloseByOutsideClick(false); + } } void SendFilesBox::sendWhenOnline() { diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 7206e6a2b..05a339a80 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -5370,8 +5370,7 @@ bool HistoryWidget::confirmSendingFiles( })); Window::ActivateWindow(controller()); - const auto shown = controller()->show(std::move(box)); - shown->setCloseByOutsideClick(false); + controller()->show(std::move(box)); return true; } diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp index 1c30b39cd..ac23678b8 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp @@ -972,8 +972,7 @@ bool RepliesWidget::confirmSendingFiles( insertTextOnCancel)); //ActivateWindow(controller()); - const auto shown = controller()->show(std::move(box)); - shown->setCloseByOutsideClick(false); + controller()->show(std::move(box)); return true; } diff --git a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp index 3f9314c40..02570767e 100644 --- a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp @@ -429,8 +429,7 @@ bool ScheduledWidget::confirmSendingFiles( insertTextOnCancel)); //ActivateWindow(controller()); - const auto shown = controller()->show(std::move(box)); - shown->setCloseByOutsideClick(false); + controller()->show(std::move(box)); return true; } diff --git a/Telegram/SourceFiles/media/stories/media_stories_reply.cpp b/Telegram/SourceFiles/media/stories/media_stories_reply.cpp index bb3a834a6..8a2088785 100644 --- a/Telegram/SourceFiles/media/stories/media_stories_reply.cpp +++ b/Telegram/SourceFiles/media/stories/media_stories_reply.cpp @@ -500,7 +500,7 @@ bool ReplyArea::confirmSendingFiles( auto confirmed = [=](auto &&...args) { sendingFilesConfirmed(std::forward(args)...); }; - auto box = Box(SendFilesBoxDescriptor{ + show->show(Box(SendFilesBoxDescriptor{ .show = show, .list = std::move(list), .caption = _controls->getTextWithAppliedMarkdown(), @@ -511,10 +511,7 @@ bool ReplyArea::confirmSendingFiles( .stOverride = &st::storiesComposeControls, .confirmed = crl::guard(this, confirmed), .cancelled = _controls->restoreTextCallback(insertTextOnCancel), - }); - if (const auto shown = show->show(std::move(box))) { - shown->setCloseByOutsideClick(false); - } + })); return true; }