Skip to content

Commit

Permalink
Fixed shadows in userpic builder with non-default scale.
Browse files Browse the repository at this point in the history
  • Loading branch information
23rd committed Oct 11, 2023
1 parent 501784c commit 41dada2
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions Telegram/SourceFiles/info/userpic/info_userpic_bubble_wrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 41dada2

Please sign in to comment.