diff options
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgthreadedrenderloop.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index c111090520..dfc70d7e68 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -2289,6 +2289,8 @@ void QQuickWindowPrivate::cleanupNodesOnShutdown(QQuickItem *item) p->groupNode = 0; p->paintNode = 0; + + p->dirty(QQuickItemPrivate::Window); } for (int ii = 0; ii < p->childItems.count(); ++ii) diff --git a/src/quick/scenegraph/qsgthreadedrenderloop.cpp b/src/quick/scenegraph/qsgthreadedrenderloop.cpp index 2759d82e77..9426db70d0 100644 --- a/src/quick/scenegraph/qsgthreadedrenderloop.cpp +++ b/src/quick/scenegraph/qsgthreadedrenderloop.cpp @@ -402,6 +402,7 @@ bool QSGRenderThread::event(QEvent *e) case WM_TryRelease: { QSG_RT_DEBUG("WM_TryRelease"); mutex.lock(); + wm->m_locked = true; WMTryReleaseEvent *wme = static_cast<WMTryReleaseEvent *>(e); if (!window || wme->inDestructor) { QSG_RT_DEBUG(" - setting exit flag and invalidating GL"); @@ -413,6 +414,7 @@ bool QSGRenderThread::event(QEvent *e) QSG_RT_DEBUG(" - not releasing anything because we have active windows..."); } waitCondition.wakeOne(); + wm->m_locked = false; mutex.unlock(); return true; } |