diff options
Diffstat (limited to 'src/quick/items/qquicklistview.cpp')
| -rw-r--r-- | src/quick/items/qquicklistview.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 7d1829858d..c35fc5224c 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -896,13 +896,18 @@ void QQuickListViewPrivate::layoutVisibleItems(int fromModelIndex) const qreal from = isContentFlowReversed() ? -position()-displayMarginBeginning-size() : position()-displayMarginBeginning; const qreal to = isContentFlowReversed() ? -position()+displayMarginEnd : position()+size()+displayMarginEnd; - FxViewItem *firstItem = *visibleItems.constBegin(); + FxListItemSG *firstItem = static_cast<FxListItemSG *>(visibleItems.constFirst()); bool fixedCurrent = currentItem && firstItem->item == currentItem->item; firstVisibleItemPosition = firstItem->position(); qreal sum = firstItem->size(); qreal pos = firstItem->position() + firstItem->size() + spacing; firstItem->setVisible(firstItem->endPosition() >= from && firstItem->position() <= to); + // setPosition will affect the position of the item, and its section, if it has one. + // This will prevent them from potentially overlapping. + if (firstItem->section()) + firstItem->setPosition(firstItem->position()); + for (int i=1; i < visibleItems.count(); ++i) { FxListItemSG *item = static_cast<FxListItemSG*>(visibleItems.at(i)); if (item->index >= fromModelIndex) { |
