From ec00272f749972c49d4eaf858a57c38a5bf30c8b Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 17 Oct 2017 13:04:47 +0200 Subject: QQuickAnimatorProxyJob: Disconnect from window when unsetting it Otherwise we may get called back when the window's scene graph is ready, but we don't have a controller anymore then. This leads to a crash. Change-Id: I8075619e1fd3c69ca0f7d0b1d72952b8cc5040f8 Reviewed-by: Mitch Curtis Reviewed-by: J-P Nurmi Reviewed-by: Shawn Rutledge --- src/quick/util/qquickanimatorjob.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/quick/util/qquickanimatorjob.cpp') diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index 3ac02cd259..50fb7090d1 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -197,8 +197,12 @@ void QQuickAnimatorProxyJob::windowChanged(QQuickWindow *window) void QQuickAnimatorProxyJob::setWindow(QQuickWindow *window) { if (!window) { - if (m_job && m_controller) + if (m_job && m_controller) { + disconnect(m_controller->window(), &QQuickWindow::sceneGraphInitialized, + this, &QQuickAnimatorProxyJob::sceneGraphInitialized); m_controller->cancel(m_job); + } + m_controller = nullptr; stop(); -- cgit v1.2.3