diff options
author | Charles Yin <charles.yin@nokia.com> | 2012-03-07 09:34:18 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-07 03:59:46 +0100 |
commit | cc6556c62c2e06f6d0b15383165772d06aa26066 (patch) | |
tree | 514e32bf48085387c149fd147ea1b2fc8fc59e87 /src/quick | |
parent | 14e00670b7393dd16e8896b2365e6d0c154c2d9a (diff) |
Repaint the canvas item properly when canvas resized
Task-number:QTBUG-23594
Change-Id: I703a5190b5b306666ffd61001ff94f296399465f
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 25 | ||||
-rw-r--r-- | src/quick/items/context2d/qquickcontext2dtexture.cpp | 1 |
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; |