@@ -785,10 +785,14 @@ void ListViewWithPageHeader::onModelUpdated(const QQuickChangeSet &changeSet, bo
786 if (growDown) {
786 if (growDown) {
787 adjustMinYExtent();
787 adjustMinYExtent();
788− } else if (remove.index <= m_firstVisibleIndex && !m_visibleItems.isEmpty()) {
788+ } else if (remove.index <= m_firstVisibleIndex) {
789+ if (!m_visibleItems.isEmpty()) {
789− // We removed the first item that is the one that positions the rest
790+ // We removed the first item that is the one that positions the rest
790− // position the new first item correctly
791+ // position the new first item correctly
791− m_visibleItems.first()->setY(oldFirstValidIndexPos);
792+ m_visibleItems.first()->setY(oldFirstValidIndexPos);
794+ m_firstVisibleIndex = -1;
793 } else if (remove.index + remove.count <= m_firstVisibleIndex) {
797 } else if (remove.index + remove.count <= m_firstVisibleIndex) {
794 m_firstVisibleIndex -= remove.count;
798 m_firstVisibleIndex -= remove.count;
@@ -806,7 +810,7 @@ void ListViewWithPageHeader::onModelUpdated(const QQuickChangeSet &changeSet, bo
806 Q_FOREACH(const QQuickChangeSet::Insert &insert, changeSet.inserts()) {
810 Q_FOREACH(const QQuickChangeSet::Insert &insert, changeSet.inserts()) {
807// qDebug() << "ListViewWithPageHeader::onModelUpdated Insert" << insert.index << insert.count;
811// qDebug() << "ListViewWithPageHeader::onModelUpdated Insert" << insert.index << insert.count;
808 const bool insertingInValidIndexes = insert.index > m_firstVisibleIndex && insert.index < m_firstVisibleIndex + m_visibleItems.count();
812 const bool insertingInValidIndexes = insert.index > m_firstVisibleIndex && insert.index < m_firstVisibleIndex + m_visibleItems.count();
809− const bool firstItemWithViewOnTop = insert.index == 0 && m_firstVisibleIndex == 0 && !m_visibleItems.isEmpty() && m_visibleItems.first()->y() + m_clipItem->y() > contentY();
813+ const bool firstItemWithViewOnTop = insert.index == 0 && m_firstVisibleIndex == 0 && m_visibleItems.first()->y() + m_clipItem->y() > contentY();
810 if (insertingInValidIndexes || firstItemWithViewOnTop)
814 if (insertingInValidIndexes || firstItemWithViewOnTop)
812 // If the items we are adding won't be really visible
816 // If the items we are adding won't be really visible