diff options
Diffstat (limited to 'src/quick/scenegraph/qsgrenderloop.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgrenderloop.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp index b4cfd1c514..73b64b4f9b 100644 --- a/src/quick/scenegraph/qsgrenderloop.cpp +++ b/src/quick/scenegraph/qsgrenderloop.cpp @@ -93,8 +93,12 @@ 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); - wd->windowManager = 0; + if (!wasDeleted) + wd->windowManager = 0; } } delete s_instance; |