https://bugs.kde.org/show_bug.cgi?id=368838

--- Comment #86 from David Edmundson <k...@davidedmundson.co.uk> ---
Steps to reproduce:

 - set to QSG_RENDER_LOOP=basic
 - create a slideshow
 - open a taskmanager tooltip
 - then we leak

Tooltip is not rendered because it's not visible.
But it's re-used so still exists.
QSGGuiThreadRenderLoop::renderWindow() returns false for that window without
doing anything.
But it's still marked as updatePending, so we never think we've rendered all
the windows.

This patch in Qt will fix it; though arugably isn't quite at the right cause.

diff --git a/src/quick/scenegraph/qsgrenderloop.cpp
b/src/quick/scenegraph/qsgrenderloop.cpp
index ca1fb9ba5..51b4775f2 100644
--- a/src/quick/scenegraph/qsgrenderloop.cpp
+++ b/src/quick/scenegraph/qsgrenderloop.cpp
@@ -384,7 +384,8 @@ void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow
*window)
     bool lastDirtyWindow = true;
     auto i = m_windows.constBegin();
     while (i != m_windows.constEnd()) {
-        if (i.value().updatePending) {
+        QQuickWindowPrivate *cd = QQuickWindowPrivate::get(i.key());
+        if (i.value().updatePending && cd->isRenderable()) {
             lastDirtyWindow = false;
             break;
         }

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to