aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/items/qquickcanvas.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@nokia.com>2011-11-14 15:11:45 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-14 16:39:25 +0100
commit885d3cfd658d2003cea5cdc8b7c347748ce030dd (patch)
tree4b9ebc049587a7c4be45f0e58fc09934e7ed4c06 /src/declarative/items/qquickcanvas.cpp
parentace4b5881c6074b6e525281e0daa3a4740203b15 (diff)
Fixed assert during QML shutdown
Change-Id: I680af9ccb417d3162277b5740a129ecd77feee7f Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/declarative/items/qquickcanvas.cpp')
-rw-r--r--src/declarative/items/qquickcanvas.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/declarative/items/qquickcanvas.cpp b/src/declarative/items/qquickcanvas.cpp
index dfdaaed22d..d5003e9321 100644
--- a/src/declarative/items/qquickcanvas.cpp
+++ b/src/declarative/items/qquickcanvas.cpp
@@ -864,6 +864,12 @@ QQuickCanvas::~QQuickCanvas()
{
Q_D(QQuickCanvas);
+ /* The threaded renderer will clean up the nodes which will fire
+ sceneGraphChanged events through back to the canvas. This signal
+ is connected to maybeUpdate which should only be called from GUI or during
+ updatePaintNode(), so disconnect them before starting the shutdown
+ */
+ disconnect(d->context->renderer(), SIGNAL(sceneGraphChanged()), this, SLOT(maybeUpdate()));
if (d->thread->isRunning()) {
d->thread->stopRendering();
delete d->thread;