@@ -1655,6 +1655,49 @@ private Q_SLOTS:
16551655 QCOMPARE(spy.count(), 0);
16561656 }
16571657
1658+ void testOvershootOnSameSize()
1659+ {
1660+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 6));
1661+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
1662+ QCOMPARE(lvwph->m_minYExtent, 0.);
1663+ QCOMPARE(lvwph->m_clipItem->y(), 0.);
1664+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1665+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1666+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1667+ QCOMPARE(lvwph->contentY(), 0.);
1668+
1669+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100));
1670+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 392));
1671+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1672+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1673+ verifyItem(0, 50., 392., false);
1674+ verifyItem(1, 442., 100., false);
1675+
1676+ QTest::mousePress(view, Qt::LeftButton, Qt::NoModifier, QPoint(0, 0));
1677+ QTest::qWait(100);
1678+ QTest::mouseMove(view, QPoint(0, 5));
1679+ QTest::qWait(100);
1680+ QTest::mouseMove(view, QPoint(0, 10));
1681+ QTest::qWait(100);
1682+ QTest::mouseMove(view, QPoint(0, 15));
1683+ QTest::qWait(100);
1684+ QTest::mouseMove(view, QPoint(0, 20));
1685+ QTest::qWait(100);
1686+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1687+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1688+ verifyItem(0, 55., 392., false);
1689+ verifyItem(1, 447., 100., false);
1690+ QCOMPARE(lvwph->m_minYExtent, 0.);
1691+ QCOMPARE(lvwph->m_clipItem->y(), -5.);
1692+
1693+ QTest::mouseRelease(view, Qt::LeftButton, Qt::NoModifier, QPoint(0, 15));
1694+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1695+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1696+ verifyItem(0, 50., 392., false);
1697+ verifyItem(1, 442., 100., false);
1698+ }
1699+
1700+
16581701private:
16591702 QQuickView *view;
16601703 ListViewWithPageHeader *lvwph;