diff options
Diffstat (limited to 'src/quick/items/context2d/qquickcanvasitem.cpp')
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 7d3be0865b..d184003b82 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -284,6 +284,7 @@ QQuickCanvasItem::QQuickCanvasItem(QQuickItem *parent) : QQuickItem(*(new QQuickCanvasItemPrivate), parent) { setFlag(ItemHasContents); + connect(this, SIGNAL(sceneGraphInvalidated()), this, SLOT(invalidateSG())); } QQuickCanvasItem::~QQuickCanvasItem() @@ -606,6 +607,13 @@ void QQuickCanvasItem::releaseResources() } } +void QQuickCanvasItem::invalidateSG() +{ + Q_D(QQuickCanvasItem); + d->context->deleteLater(); + d->context = 0; +} + void QQuickCanvasItem::componentComplete() { QQuickItem::componentComplete(); |