diff options
Diffstat (limited to 'src/gui/kernel/qhighdpiscaling_p.h')
-rw-r--r-- | src/gui/kernel/qhighdpiscaling_p.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index 89856570ce..85527fe598 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -219,10 +219,9 @@ inline QRegion scale(const QRegion ®ion, qreal scaleFactor, QPoint origin = Q if (!QHighDpiScaling::isActive()) return region; - QRegion scaled; - for (const QRect &rect : region) - scaled += scale(QRectF(rect), scaleFactor, origin).toRect(); - return scaled; + QRegion scaled = region.translated(-origin); + scaled = QTransform::fromScale(scaleFactor, scaleFactor).map(scaled); + return scaled.translated(origin); } template <typename T> |