From 893c09c848df7adb10d4f935ec3499afc8f35bd6 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 19 Mar 2024 18:58:20 +0300 Subject: [PATCH] Fixed showing of rate call box in appropriate window. --- Telegram/SourceFiles/calls/calls_call.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp index 486d5af2a..205a4c2d7 100644 --- a/Telegram/SourceFiles/calls/calls_call.cpp +++ b/Telegram/SourceFiles/calls/calls_call.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/mtproto_config.h" #include "core/application.h" #include "core/core_settings.h" +#include "window/window_controller.h" #include "media/audio/media_audio_track.h" #include "base/platform/base_platform_info.h" #include "calls/calls_panel.h" @@ -706,11 +707,15 @@ bool Call::handleUpdate(const MTPPhoneCall &call) { } } if (data.is_need_rating() && _id && _accessHash) { + const auto window = Core::App().windowFor(_user); const auto session = &_user->session(); const auto callId = _id; const auto callAccessHash = _accessHash; - const auto box = Ui::show(Box( - Core::App().settings().sendSubmitWay())); + auto owned = Box( + Core::App().settings().sendSubmitWay()); + const auto box = window + ? window->show(std::move(owned)) + : Ui::show(std::move(owned)); const auto sender = box->lifetime().make_state( &session->mtp()); box->sends( @@ -1377,7 +1382,11 @@ void Call::handleRequestError(const QString &error) { _user->name()) : QString(); if (!inform.isEmpty()) { - Ui::show(Ui::MakeInformBox(inform)); + if (const auto window = Core::App().windowFor(_user)) { + window->show(Ui::MakeInformBox(inform)); + } else { + Ui::show(Ui::MakeInformBox(inform)); + } } finish(FinishType::Failed); } @@ -1391,7 +1400,11 @@ void Call::handleControllerError(const QString &error) { ? tr::lng_call_error_audio_io(tr::now) : QString(); if (!inform.isEmpty()) { - Ui::show(Ui::MakeInformBox(inform)); + if (const auto window = Core::App().windowFor(_user)) { + window->show(Ui::MakeInformBox(inform)); + } else { + Ui::show(Ui::MakeInformBox(inform)); + } } finish(FinishType::Failed); }