diff --git a/src/layouts/qquicklinearlayout.cpp b/src/layouts/qquicklinearlayout.cpp
index fdc87d37c643e37d27e11b562fec5eea3b82399f..541e4aca1b880ea28ce5acdce51e9891a11e8c13 100644
--- a/src/layouts/qquicklinearlayout.cpp
+++ b/src/layouts/qquicklinearlayout.cpp
@@ -389,13 +389,10 @@ bool QQuickGridLayoutBase::shouldIgnoreItem(QQuickItem *child, QQuickLayoutAttac
         QQuickGridLayoutItem::effectiveSizeHints_helper(child, sizeHints, &info, true);
         QSizeF effectiveMaxSize = sizeHints[Qt::MaximumSize];
         if (!effectiveMaxSize.isNull()) {
-            bool effectiveFillWidth = QQuickGridLayoutItem::effectiveSizePolicy_helper(child, Qt::Horizontal, info);
-            bool effectiveFillHeight = QQuickGridLayoutItem::effectiveSizePolicy_helper(child, Qt::Vertical, info);
-
             QSizeF &prefS = sizeHints[Qt::PreferredSize];
-            if (!effectiveFillWidth)
+            if (QQuickGridLayoutItem::effectiveSizePolicy_helper(child, Qt::Horizontal, info) == QLayoutPolicy::Fixed)
                 effectiveMaxSize.setWidth(prefS.width());
-            if (!effectiveFillHeight)
+            if (QQuickGridLayoutItem::effectiveSizePolicy_helper(child, Qt::Vertical, info) == QLayoutPolicy::Fixed)
                 effectiveMaxSize.setHeight(prefS.height());
         }
         ignoreItem = effectiveMaxSize.isNull();