diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp index 8d8e4b6a0297b6b6da80da39279925b23da7af40..07b8958664f8670cd3891d610b47fd898ac9a991 100644 --- a/src/quick/items/qquickborderimage.cpp +++ b/src/quick/items/qquickborderimage.cpp @@ -582,10 +582,16 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat qMax<qreal>(0, width() - border->right() - border->left()), qMax<qreal>(0, height() - border->bottom() - border->top())); - if (innerSourceRect != d->oldInnerSourceRect || innerTargetRect != d->oldInnerTargetRect) + QSizeF newSize(width(), height()); + if (innerSourceRect != d->oldInnerSourceRect + || innerTargetRect != d->oldInnerTargetRect + || newSize != d->oldSize) { updateNode = true; + } + d->oldInnerSourceRect = innerSourceRect; d->oldInnerTargetRect = innerTargetRect; + d->oldSize = newSize; } bool updatePixmap = d->pixmapChanged; diff --git a/src/quick/items/qquickimagebase_p_p.h b/src/quick/items/qquickimagebase_p_p.h index ec2f0bb73e476de8b8019520b8da701d68ec2e0c..21d11a74481387263f7cde1f95797d77806ab48c 100644 --- a/src/quick/items/qquickimagebase_p_p.h +++ b/src/quick/items/qquickimagebase_p_p.h @@ -77,6 +77,7 @@ public: qreal devicePixelRatio; QRectF oldInnerSourceRect; QRectF oldInnerTargetRect; + QSizeF oldSize; bool async : 1; bool cache : 1; bool mirror: 1;