diff options
Diffstat (limited to 'src/quick/items/qquickgridview.cpp')
-rw-r--r-- | src/quick/items/qquickgridview.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index 605e37e29f..b33f7d2a4d 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -542,6 +542,9 @@ void QQuickGridViewPrivate::updateViewport() void QQuickGridViewPrivate::layoutVisibleItems() { if (visibleItems.count()) { + const qreal from = isContentFlowReversed() ? -position() - size() : position(); + const qreal to = isContentFlowReversed() ? -position() : position() + size(); + FxGridItemSG *firstItem = static_cast<FxGridItemSG*>(visibleItems.first()); qreal rowPos = firstItem->rowPos(); qreal colPos = firstItem->colPos(); @@ -549,6 +552,7 @@ void QQuickGridViewPrivate::layoutVisibleItems() if (colPos != col * colSize()) { colPos = col * colSize(); firstItem->setPosition(colPos, rowPos); + firstItem->item->setVisible(rowPos + rowSize() >= from && rowPos <= to); } for (int i = 1; i < visibleItems.count(); ++i) { FxGridItemSG *item = static_cast<FxGridItemSG*>(visibleItems.at(i)); @@ -558,6 +562,7 @@ void QQuickGridViewPrivate::layoutVisibleItems() } colPos = col * colSize(); item->setPosition(colPos, rowPos); + item->item->setVisible(rowPos + rowSize() >= from && rowPos <= to); } } } |