aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp25
-rw-r--r--src/quick/items/context2d/qquickcontext2dtexture.cpp1
2 files changed, 13 insertions, 13 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index e2f57fe162..ed16ea0f38 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -463,30 +463,29 @@ void QQuickCanvasItem::sceneGraphInitialized()
void QQuickCanvasItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
{
Q_D(QQuickCanvasItem);
- QQuickItem::geometryChanged(newGeometry, oldGeometry);
- const qreal w = newGeometry.width();
- const qreal h = newGeometry.height();
+ QQuickItem::geometryChanged(newGeometry, oldGeometry);
- if (!d->hasCanvasSize) {
- d->canvasSize = QSizeF(w, h);
+ QSizeF newSize = newGeometry.size();
+ if (!d->hasCanvasSize && d->canvasSize != newSize) {
+ d->canvasSize = newSize;
emit canvasSizeChanged();
}
- if (!d->hasTileSize) {
- d->tileSize = d->canvasSize.toSize();
+ if (!d->hasTileSize && d->tileSize != newSize) {
+ d->tileSize = newSize.toSize();
emit tileSizeChanged();
}
- if (!d->hasCanvasWindow) {
- d->canvasWindow = QRectF(0, 0, w, h);
+ const QRectF rect = QRectF(QPointF(0, 0), newSize);
+
+ if (!d->hasCanvasWindow && d->canvasWindow != rect) {
+ d->canvasWindow = rect;
emit canvasWindowChanged();
}
- if (d->available) {
- polish();
- update();
- }
+ if (d->available)
+ requestPaint();
}
void QQuickCanvasItem::componentComplete()
diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp
index 60f58540f4..bdf147151e 100644
--- a/src/quick/items/context2d/qquickcontext2dtexture.cpp
+++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp
@@ -177,6 +177,7 @@ void QQuickContext2DTexture::canvasChanged(const QSize& canvasSize, const QSize&
setCanvasSize(canvasSize);
setTileSize(ts);
+ setCanvasWindow(canvasWindow);
if (canvasSize == canvasWindow.size()) {
m_tiledCanvas = false;