From 085d13f6ae3009bd157bfce6a062453d95298cbc Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Mon, 28 May 2018 17:17:07 +0200 Subject: Fix items in layouts not being rendered when layers are used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A layer effect is apparently considered a child item of the layout that manages the item, and this causes issues when layouting. As was done for positioners in 865b4ec8, exclude any items for which QQuickItemPrivate::isTransparentForPositioner() returns true from layouting. As that commit made QQuickItemLayer set it to true when the layer is enabled, QQuickShaderEffectSource will be excluded from layouting. Task-number: QTBUG-63269 Change-Id: I463ff8d0cea0dfd6c4273f376de347971040d3d0 Reviewed-by: Mitch Curtis Reviewed-by: Jan Arve Sæther --- src/imports/layouts/qquicklayout.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/imports/layouts/qquicklayout.cpp b/src/imports/layouts/qquicklayout.cpp index b3a5a2cfc8..cc206bcb95 100644 --- a/src/imports/layouts/qquicklayout.cpp +++ b/src/imports/layouts/qquicklayout.cpp @@ -764,6 +764,9 @@ bool QQuickLayout::shouldIgnoreItem(QQuickItem *child, QQuickLayoutAttached *&in ignoreItem = effectiveMaxSize.isNull(); } + if (!ignoreItem && childPrivate->isTransparentForPositioner()) + ignoreItem = true; + if (ignoreItem) d->m_ignoredItems << child; return ignoreItem; -- cgit v1.2.3