From 41dada2c06a00e4a1c848a82e55a2c5bedc17515 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 3 Oct 2023 19:01:39 +0300 Subject: [PATCH] Fixed shadows in userpic builder with non-default scale. --- .../info/userpic/info_userpic_bubble_wrap.cpp | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/info/userpic/info_userpic_bubble_wrap.cpp b/Telegram/SourceFiles/info/userpic/info_userpic_bubble_wrap.cpp index 95f383b1e..ffb0204fc 100644 --- a/Telegram/SourceFiles/info/userpic/info_userpic_bubble_wrap.cpp +++ b/Telegram/SourceFiles/info/userpic/info_userpic_bubble_wrap.cpp @@ -18,22 +18,26 @@ namespace Ui { namespace { void PaintExcludeTopShadow(QPainter &p, int radius, const QRect &r) { - constexpr auto kHorizontalOffset = 1; - constexpr auto kVerticalOffset = 2; + constexpr auto kHorizontalOffset = 1.; + constexpr auto kVerticalOffset = 2.; + constexpr auto kOpacityStep1 = 0.2; + constexpr auto kOpacityStep2 = 0.4; const auto opacity = p.opacity(); - p.setOpacity(opacity * 0.2); + const auto hOffset = style::ConvertScale(kHorizontalOffset); + const auto vOffset = style::ConvertScale(kVerticalOffset); + p.setOpacity(opacity * kOpacityStep1); p.drawRoundedRect( - r + QMargins(kHorizontalOffset, -radius, kHorizontalOffset, 0), + r + QMarginsF(hOffset, -radius, hOffset, 0), radius, radius); - p.setOpacity(opacity * 0.2); + p.setOpacity(opacity * kOpacityStep1); p.drawRoundedRect( - r + QMargins(0, 0, 0, kVerticalOffset), + r + QMarginsF(0, 0, 0, vOffset), radius, radius); - p.setOpacity(opacity * 0.4); + p.setOpacity(opacity * kOpacityStep2); p.drawRoundedRect( - r + QMargins(0, 0, 0, kVerticalOffset / 2), + r + QMarginsF(0, 0, 0, vOffset / 2.), radius, radius); p.setOpacity(opacity);