diff --git a/Telegram/SourceFiles/data/data_peer.cpp b/Telegram/SourceFiles/data/data_peer.cpp index 25cf34ad29..e170a9bba1 100644 --- a/Telegram/SourceFiles/data/data_peer.cpp +++ b/Telegram/SourceFiles/data/data_peer.cpp @@ -353,7 +353,7 @@ QImage PeerData::generateUserpicImage( const auto round = [&](int radius) { return Images::Round( std::move(image), - Images::CornersMask(radius)); + Images::CornersMask(radius / style::DevicePixelRatio())); }; if (radius == 0) { return image; diff --git a/Telegram/SourceFiles/history/view/media/history_view_photo.cpp b/Telegram/SourceFiles/history/view/media/history_view_photo.cpp index 2efe066c39..11a1a8e0f3 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_photo.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_photo.cpp @@ -382,13 +382,12 @@ void Photo::validateUserpicImageCache(QSize size, bool forum) const { if (blurredValue) { args = args.blurred(); } - original = Images::Prepare(std::move(original), size, args); + original = Images::Prepare(std::move(original), size * ratio, args); if (forumValue) { original = Images::Round( std::move(original), Images::CornersMask(std::min(size.width(), size.height()) - * Ui::ForumUserpicRadiusMultiplier() - * style::DevicePixelRatio())); + * Ui::ForumUserpicRadiusMultiplier())); } else { original = Images::Circle(std::move(original)); } @@ -460,9 +459,8 @@ void Photo::paintUserpicFrame( request.outer = request.resize = size * ratio; if (forum) { const auto radius = int(std::min(size.width(), size.height()) - * Ui::ForumUserpicRadiusMultiplier() - * ratio); - if (_streamed->roundingCorners[0].width() != radius) { + * Ui::ForumUserpicRadiusMultiplier()); + if (_streamed->roundingCorners[0].width() != radius * ratio) { _streamed->roundingCorners = Images::CornersMask(radius); } request.rounding = Images::CornersMaskRef( diff --git a/Telegram/SourceFiles/ui/special_buttons.cpp b/Telegram/SourceFiles/ui/special_buttons.cpp index 610c2ba27f..c0ee11166e 100644 --- a/Telegram/SourceFiles/ui/special_buttons.cpp +++ b/Telegram/SourceFiles/ui/special_buttons.cpp @@ -478,9 +478,8 @@ void UserpicButton::paintUserpicFrame(Painter &p, QPoint photoPosition) { const auto forum = _peer && _peer->isForum(); if (forum) { const auto radius = int(_st.photoSize - * Ui::ForumUserpicRadiusMultiplier() - * ratio); - if (_roundingCorners[0].width() != radius) { + * Ui::ForumUserpicRadiusMultiplier()); + if (_roundingCorners[0].width() != radius * ratio) { _roundingCorners = Images::CornersMask(radius); } request.rounding = Images::CornersMaskRef(_roundingCorners); diff --git a/Telegram/SourceFiles/ui/userpic_view.cpp b/Telegram/SourceFiles/ui/userpic_view.cpp index 0e4ef3d137..f14ac76e80 100644 --- a/Telegram/SourceFiles/ui/userpic_view.cpp +++ b/Telegram/SourceFiles/ui/userpic_view.cpp @@ -51,8 +51,9 @@ void ValidateUserpicCache( if (forum) { view.cached = Images::Round( std::move(view.cached), - Images::CornersMask( - size * Ui::ForumUserpicRadiusMultiplier())); + Images::CornersMask(size + * Ui::ForumUserpicRadiusMultiplier() + / style::DevicePixelRatio())); } else { view.cached = Images::Circle(std::move(view.cached)); }