aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/nativestyle/items/qquickstyleitem.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/imports/nativestyle/items/qquickstyleitem.cpp b/src/imports/nativestyle/items/qquickstyleitem.cpp
index 506392cb..9f6ce676 100644
--- a/src/imports/nativestyle/items/qquickstyleitem.cpp
+++ b/src/imports/nativestyle/items/qquickstyleitem.cpp
@@ -284,8 +284,13 @@ void QQuickStyleItem::paintControlToImage()
m_dirty.setFlag(DirtyFlag::Image, false);
const qreal scale = window()->devicePixelRatio();
- m_paintedImage = QImage(imageSize() * scale, QImage::Format_ARGB32_Premultiplied);
- m_paintedImage.setDevicePixelRatio(scale);
+ const QSize scaledImageSize = imageSize() * scale;
+
+ if (m_paintedImage.size() != scaledImageSize) {
+ m_paintedImage = QImage(scaledImageSize, QImage::Format_ARGB32_Premultiplied);
+ m_paintedImage.setDevicePixelRatio(scale);
+ }
+
m_paintedImage.fill(Qt::transparent);
QPainter painter(&m_paintedImage);