https://bugs.kde.org/show_bug.cgi?id=467909
--- Comment #7 from Albert Astals Cid <aa...@kde.org> --- Git commit 45c22a0221937682f4496801a495458a00f76d3a by Albert Astals Cid, on behalf of Volker Hilsheimer. Committed on 17/04/2023 at 21:40. Pushed by aacid into branch 'kde/5.15'. QQuickItem: Fix effective visibility for items without parent Items are visible if they are children of a visible parent, and not explicitly hidden. The effectiveVisible member stores the state and is updated when conditions that impact the item visibility changes. The old code returned true for items outside a visual hierarchy, which broke signal emission when items were removed from a parent, e.g. because the parent got destroyed. With this change, items removed from a visual hierarchy will emit the visibleChanged signal. Note: QQuickItem initializes the effectiveVisible member to true, even if the item was created without parent item. Visual items are required to be added to a visual hierarchy via setParentItem. For this reason, newly created items never emit visibleChanged when they are added to a parent. Adjust the QQuickItem::visible test - it creates an item hierarchy without window. Such items are never visible, so add a window and parent the test item hierarchy to the window's content item. This fixes the expected failures in the tests. It does introduce an incompatibility with QGraphicsView and QGraphicsItem, which continue to return true from QGraphicsItem::isVisible for items that are not in an item hierarchy. [ChangeLog][Qt Quick][QQuickItem] The visible property of Items without a parent now always returns false, and the visibleChanged signal gets emitted when the parent item of a visible item becomes null. Fixes: QTBUG-108213 Change-Id: If4b2947cefd1407853f0f29e6c3fdbd49fc9af65 Reviewed-by: Fabian Kosmale <fabian.kosm...@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutle...@qt.io> (cherry picked from commit d1b9a4cacfb966cf0a37983d8f8044f3aedf5de3) Related: bug 396359 M +2 -4 src/quick/items/qquickitem.cpp M +2 -0 tests/auto/quick/qquickitem/tst_qquickitem.cpp https://invent.kde.org/qt/qt/qtdeclarative/commit/45c22a0221937682f4496801a495458a00f76d3a -- You are receiving this mail because: You are watching all bug changes.