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

Aleix Pol <aleix...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/fram
                   |                            |eworks/plasma-framework/com
                   |                            |mit/f031fa430828fe2f009af13
                   |                            |c74d42f21f260c4c5
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #17 from Aleix Pol <aleix...@kde.org> ---
Git commit f031fa430828fe2f009af13c74d42f21f260c4c5 by Aleix Pol Gonzalez, on
behalf of Vlad Zahorodnii.
Committed on 14/10/2021 at 10:01.
Pushed by vladz into branch 'master'.

Split window texture provider from window texture node

Currently, the WindowThumbnail item puts both the texture provider and
the scene graph node in a single object.

It uses QPointer to detect if the scene graph node has been deleted.
However, that seems to break if QtQuick passes null oldNode while the
real old node is still alive.

Because the WindowThumbnail caches the old node, it may not see that
QtQuick wants a new scene graph node. With debug build, it's going to
trigger an assert in QQuickWindowPrivate::updateDirtyNode() that checks
if the paint node is either new or belongs to the child container node.
With a release build, it's undefined behavior.

In order to make the WindowThumbnail item handle the case where oldNode
is null while the cached old node is still alive, this change decouples
texture provider bits from the scene graph node and ports the item to
QSGImageNode, which we need to do anyway.

M  +52   -50   src/declarativeimports/core/windowthumbnail.cpp
M  +9    -14   src/declarativeimports/core/windowthumbnail.h

https://invent.kde.org/frameworks/plasma-framework/commit/f031fa430828fe2f009af13c74d42f21f260c4c5

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

Reply via email to