aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgrenderloop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/scenegraph/qsgrenderloop.cpp')
-rw-r--r--src/quick/scenegraph/qsgrenderloop.cpp6
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;