Mark item as dirty when nodes are cleaned
authorMichael Brasser <michael.brasser@jollamobile.com>
Thu, 5 Dec 2013 18:53:09 +0000 (12:53 -0600)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 10 Dec 2013 16:09:29 +0000 (17:09 +0100)
Otherwise they may not be recreated in the correct configuration.

Change-Id: Ib103b1874d7f104680eae7b6f43f722b5fa93bf2
Done-with: Aaron Kennedy <aaron.kennedy@jollamobile.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
src/quick/items/qquickwindow.cpp
src/quick/scenegraph/qsgthreadedrenderloop.cpp

index c111090..dfc70d7 100644 (file)
@@ -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)
index 2759d82..9426db7 100644 (file)
@@ -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;
     }