aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/items/qsglistview.cpp4
-rw-r--r--src/qtquick1/graphicsitems/qdeclarativelistview.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/declarative/items/qsglistview.cpp b/src/declarative/items/qsglistview.cpp
index e1623390f8..c8e8817f95 100644
--- a/src/declarative/items/qsglistview.cpp
+++ b/src/declarative/items/qsglistview.cpp
@@ -434,6 +434,7 @@ qreal QSGListViewPrivate::snapPosAt(qreal pos)
FxViewItem *QSGListViewPrivate::snapItemAt(qreal pos)
{
FxViewItem *snapItem = 0;
+ qreal prevItemSize = 0;
for (int i = 0; i < visibleItems.count(); ++i) {
FxViewItem *item = visibleItems.at(i);
if (item->index == -1)
@@ -441,8 +442,9 @@ FxViewItem *QSGListViewPrivate::snapItemAt(qreal pos)
qreal itemTop = item->position();
if (highlight && itemTop >= pos && item->endPosition() <= pos + highlight->size())
return item;
- if (itemTop+item->size()/2 >= pos && itemTop-item->size()/2 < pos)
+ if (itemTop+item->size()/2 >= pos && itemTop-prevItemSize/2 < pos)
snapItem = item;
+ prevItemSize = item->size();
}
return snapItem;
}
diff --git a/src/qtquick1/graphicsitems/qdeclarativelistview.cpp b/src/qtquick1/graphicsitems/qdeclarativelistview.cpp
index 244a2b83fc..bc06f9b2fe 100644
--- a/src/qtquick1/graphicsitems/qdeclarativelistview.cpp
+++ b/src/qtquick1/graphicsitems/qdeclarativelistview.cpp
@@ -446,6 +446,7 @@ public:
FxListItem1 *snapItemAt(qreal pos) {
FxListItem1 *snapItem = 0;
+ qreal prevItemSize = 0;
for (int i = 0; i < visibleItems.count(); ++i) {
FxListItem1 *item = visibleItems[i];
if (item->index == -1)
@@ -453,8 +454,9 @@ public:
qreal itemTop = item->position();
if (highlight && itemTop >= pos && item->endPosition() <= pos + highlight->size() - 1)
return item;
- if (itemTop+item->size()/2 >= pos && itemTop-item->size()/2 < pos)
+ if (itemTop+item->size()/2 >= pos && itemTop-prevItemSize/2 < pos)
snapItem = item;
+ prevItemSize = item->size();
}
return snapItem;
}