diff options
author | Andy Shaw <andy.shaw@digia.com> | 2015-03-12 15:01:48 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@digia.com> | 2015-03-30 21:03:25 +0000 |
commit | 22b7fd1c0b93f12585858ac5baabba32408749fd (patch) | |
tree | 3a81b5ef93dc070d9ecdbca7288bee3cabb906f1 | |
parent | 20f9ab60cfc2609b42a900b0aa7b0d27ae156761 (diff) |
Don't send deferred delete events from windowDestroyed()
This is a follow-up to 657766f19b31d83f361fd3c9ad717b207e1dff8c which
removed it from the destructor itself. This goes one step further and
removes the calls from the windowDestroyed() calls which also sends the
deferred deletes.
Task-number: QTBUG-40920
Change-Id: I491b79bb600914575ba5565d2862d041726217e8
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
-rw-r--r-- | src/quick/scenegraph/qsgrenderloop.cpp | 7 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgwindowsrenderloop.cpp | 1 |
2 files changed, 1 insertions, 7 deletions
diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp index c66915d19d..06d26c94a5 100644 --- a/src/quick/scenegraph/qsgrenderloop.cpp +++ b/src/quick/scenegraph/qsgrenderloop.cpp @@ -91,12 +91,8 @@ void QSGRenderLoop::cleanup() foreach (QQuickWindow *w, s_instance->windows()) { QQuickWindowPrivate *wd = QQuickWindowPrivate::get(w); if (wd->windowManager == s_instance) { - // windowDestroyed() triggers a sendPostedEvent(DeferredDelete), - // so wd will be null if the window was deleteLater()'ed - bool wasDeleted = wd->wasDeleted; s_instance->windowDestroyed(w); - if (!wasDeleted) - wd->windowManager = 0; + wd->windowManager = 0; } } delete s_instance; @@ -295,7 +291,6 @@ void QSGGuiThreadRenderLoop::windowDestroyed(QQuickWindow *window) d->cleanupNodesOnShutdown(); if (m_windows.size() == 0) { rc->invalidate(); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); delete gl; gl = 0; } else if (gl && window == gl->surface() && current) { diff --git a/src/quick/scenegraph/qsgwindowsrenderloop.cpp b/src/quick/scenegraph/qsgwindowsrenderloop.cpp index 17a9856a6d..83eae7a21a 100644 --- a/src/quick/scenegraph/qsgwindowsrenderloop.cpp +++ b/src/quick/scenegraph/qsgwindowsrenderloop.cpp @@ -230,7 +230,6 @@ void QSGWindowsRenderLoop::windowDestroyed(QQuickWindow *window) d->cleanupNodesOnShutdown(); if (m_windows.size() == 0) { d->context->invalidate(); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); delete m_gl; m_gl = 0; } else if (m_gl && current) { |