diff --git a/Telegram/SourceFiles/boxes/gift_premium_box.cpp b/Telegram/SourceFiles/boxes/gift_premium_box.cpp index e7f2dab7b..96196bc11 100644 --- a/Telegram/SourceFiles/boxes/gift_premium_box.cpp +++ b/Telegram/SourceFiles/boxes/gift_premium_box.cpp @@ -95,7 +95,7 @@ void GiftBox( + st::defaultUserpicButton.size.height())); using ColoredMiniStars = Ui::Premium::ColoredMiniStars; - const auto stars = box->lifetime().make_state(top); + const auto stars = box->lifetime().make_state(top, true); const auto userpic = Ui::CreateChild( top, diff --git a/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp b/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp index 915e74e7c..f34e3f7da 100644 --- a/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp +++ b/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp @@ -171,7 +171,8 @@ void AddPremiumTopBarWithDefaultTitleBar( nullptr, tr::lng_giveaway_new_title(), tr::lng_giveaway_new_about(Ui::Text::RichLangValue), - true); + true, + false); bar->setAttribute(Qt::WA_TransparentForMouseEvents); box->addRow( diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index cb3eeccd8..b18e735f7 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -523,7 +523,7 @@ TopBarUser::TopBarUser( , _content(this) , _title(_content, st::settingsPremiumUserTitle) , _about(_content, st::userPremiumCover.about) -, _ministars(_content) +, _ministars(_content, true) , _smallTop({ .widget = object_ptr(this), .text = Ui::Text::String( diff --git a/Telegram/SourceFiles/ui/effects/premium_stars_colored.cpp b/Telegram/SourceFiles/ui/effects/premium_stars_colored.cpp index 5eeee3b89..18c9c9c24 100644 --- a/Telegram/SourceFiles/ui/effects/premium_stars_colored.cpp +++ b/Telegram/SourceFiles/ui/effects/premium_stars_colored.cpp @@ -13,10 +13,16 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Ui { namespace Premium { -ColoredMiniStars::ColoredMiniStars(not_null parent) -: _ministars([=](const QRect &r) { - parent->update(r.translated(_position)); -}, true) { +ColoredMiniStars::ColoredMiniStars( + not_null parent, + bool optimizeUpdate) +: _ministars( + optimizeUpdate + ? Fn([=](const QRect &r) { + parent->update(r.translated(_position)); + }) + : Fn([=](const QRect &) { parent->update(); }), + true) { } void ColoredMiniStars::setSize(const QSize &size) { diff --git a/Telegram/SourceFiles/ui/effects/premium_stars_colored.h b/Telegram/SourceFiles/ui/effects/premium_stars_colored.h index a8bdbd974..75660ab99 100644 --- a/Telegram/SourceFiles/ui/effects/premium_stars_colored.h +++ b/Telegram/SourceFiles/ui/effects/premium_stars_colored.h @@ -16,7 +16,8 @@ namespace Premium { class ColoredMiniStars final { public: - ColoredMiniStars(not_null parent); + // optimizeUpdate may cause paint glitch. + ColoredMiniStars(not_null parent, bool optimizeUpdate); void setSize(const QSize &size); void setPosition(QPoint position); diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp index 2127d996c..4094b584d 100644 --- a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp +++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp @@ -155,13 +155,14 @@ TopBar::TopBar( Fn clickContextOther, rpl::producer title, rpl::producer about, - bool light) + bool light, + bool optimizeMinistars) : TopBarAbstract(parent, st) , _light(light) , _titleFont(st.titleFont) , _titlePadding(st.titlePadding) , _about(this, std::move(about), st.about) -, _ministars(this) { +, _ministars(this, optimizeMinistars) { std::move( title ) | rpl::start_with_next([=](QString text) { diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.h b/Telegram/SourceFiles/ui/effects/premium_top_bar.h index c0749df00..9ccc4fa30 100644 --- a/Telegram/SourceFiles/ui/effects/premium_top_bar.h +++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.h @@ -72,7 +72,8 @@ public: Fn clickContextOther, rpl::producer title, rpl::producer about, - bool light = false); + bool light = false, + bool optimizeMinistars = true); ~TopBar(); void setPaused(bool paused) override;