diff options
Diffstat (limited to 'src/imports/nativestyle/items/qquickstyleitem.cpp')
-rw-r--r-- | src/imports/nativestyle/items/qquickstyleitem.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/imports/nativestyle/items/qquickstyleitem.cpp b/src/imports/nativestyle/items/qquickstyleitem.cpp index 38e7fd6d..b50a38c5 100644 --- a/src/imports/nativestyle/items/qquickstyleitem.cpp +++ b/src/imports/nativestyle/items/qquickstyleitem.cpp @@ -114,11 +114,13 @@ QSGNode *QQuickStyleItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePa QSGNinePatchNode *node = static_cast<QSGNinePatchNode *>(oldNode); if (!node) node = window()->createNinePatchNode(); + if (m_paintedImage.isNull()) + return node; auto texture = window()->createTextureFromImage(m_paintedImage, QQuickWindow::TextureCanUseAtlas); QRectF bounds = boundingRect(); - const qreal scale = window()->devicePixelRatio(); + const qreal scale = m_paintedImage.devicePixelRatioF(); const QSizeF ninePatchImageSize = m_paintedImage.rect().size() / scale; #ifdef QT_DEBUG if (m_debugFlags.testFlag(Unscaled)) { @@ -154,7 +156,7 @@ QSGNode *QQuickStyleItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePa node->setBounds(bounds); node->setTexture(texture); - node->setDevicePixelRatio(window()->devicePixelRatio()); + node->setDevicePixelRatio(scale); node->setPadding(padding.left(), padding.top(), padding.right(), padding.bottom()); node->update(); |