From f90a4db569822b30d6b31b5977e4f1b1b97200a6 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 24 Jan 2025 12:24:33 +0300 Subject: [PATCH] Respected pause reason in mini stars from section for main settings. --- .../SourceFiles/settings/settings_main.cpp | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp index bcc61bcba..239f669ae 100644 --- a/Telegram/SourceFiles/settings/settings_main.cpp +++ b/Telegram/SourceFiles/settings/settings_main.cpp @@ -278,7 +278,8 @@ void Cover::refreshUsernameGeometry(int newWidth) { [[nodiscard]] not_null AddPremiumStar( not_null button, - bool credits) { + bool credits, + Fn isPaused) { const auto stops = credits ? Ui::Premium::CreditsIconGradientStops() : Ui::Premium::ButtonGradientStops(); @@ -293,8 +294,15 @@ void Cover::refreshUsernameGeometry(int newWidth) { false); ministars->setColorOverride(stops); + const auto isPausedValue + = button->lifetime().make_state>(isPaused()); + isPausedValue->value() | rpl::start_with_next([=](bool value) { + ministars->setPaused(value); + }, ministarsContainer->lifetime()); + ministarsContainer->paintRequest( ) | rpl::start_with_next([=] { + (*isPausedValue) = isPaused(); auto p = QPainter(ministarsContainer); { constexpr auto kScale = 0.35; @@ -499,12 +507,17 @@ void SetupPremium( Ui::AddDivider(container); Ui::AddSkip(container); + const auto isPaused = Window::PausedIn( + controller, + Window::GifPauseReason::Any); + AddPremiumStar( AddButtonWithIcon( container, tr::lng_premium_summary_title(), st::settingsButton), - false + false, + isPaused )->addClickHandler([=] { controller->setPremiumRef("settings"); showOther(PremiumId()); @@ -522,7 +535,8 @@ void SetupPremium( : QString(); }), st::settingsButton), - true + true, + isPaused )->addClickHandler([=] { controller->setPremiumRef("settings"); showOther(CreditsId());