From 7cdb651538335852309182e682066a2a2ee295ff Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 30 Oct 2025 20:43:07 +0300 Subject: [PATCH] Slightly optimized repaint for userpic and gifts in profile top bar. --- .../info/profile/info_profile_top_bar.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp b/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp index 45265c348a..abaa804e61 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_top_bar.cpp @@ -1356,9 +1356,17 @@ void TopBar::paintEvent(QPaintEvent *e) { if (_patternEmoji && _patternEmoji->ready()) { paintAnimatedPattern(p, rect(), geometry); } - paintPinnedToTopGifts(p, rect(), geometry); - paintUserpic(p, geometry); - paintStoryOutline(p, geometry); + + const auto clipBounds = e->region().boundingRect(); + if (clipBounds.bottom() >= geometry.top() + && clipBounds.top() <= geometry.bottom()) { + paintPinnedToTopGifts(p, rect(), geometry); + } + + if (clipBounds.intersects(geometry)) { + paintUserpic(p, geometry); + paintStoryOutline(p, geometry); + } } void TopBar::setupButtons(