summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/image/qicon.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index df8220a0c6..0fe4cd45cb 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -165,6 +165,11 @@ QIconPrivate::QIconPrivate(QIconEngine *e)
qreal QIconPrivate::pixmapDevicePixelRatio(qreal displayDevicePixelRatio, const QSize &requestedSize, const QSize &actualSize)
{
QSize targetSize = requestedSize * displayDevicePixelRatio;
+ if ((actualSize.width() == targetSize.width() && actualSize.height() <= targetSize.height()) ||
+ (actualSize.width() <= targetSize.width() && actualSize.height() == targetSize.height())) {
+ // Correctly scaled for dpr, just having different aspect ratio
+ return displayDevicePixelRatio;
+ }
qreal scale = 0.5 * (qreal(actualSize.width()) / qreal(targetSize.width()) +
qreal(actualSize.height() / qreal(targetSize.height())));
return qMax(qreal(1.0), displayDevicePixelRatio *scale);