diff options
-rw-r--r-- | src/imports/nativestyle/items/qquickstyleitem.cpp | 9 |
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); |