The index of the previous first visible item needs to be adjusted
when items are removed before it in order to comparable against
later changes.
Change-Id: I3c72abb4dfc9c2ccc9b299dda186ecdc3994a735
Reviewed-by: Bea Lam <bea.lam@nokia.com>
visibleAffected = true;
if (!visibleAffected && needsRefillForAddedOrRemovedIndex(removals[i].index))
visibleAffected = true;
- if (prevFirstVisibleIndex >= 0 && removals[i].index < prevFirstVisibleIndex) {
- if (removals[i].index + removals[i].count < prevFirstVisibleIndex)
+ const int correctedFirstVisibleIndex = prevFirstVisibleIndex - removalResult.countChangeBeforeVisible;
+ if (correctedFirstVisibleIndex >= 0 && removals[i].index < correctedFirstVisibleIndex) {
+ if (removals[i].index + removals[i].count < correctedFirstVisibleIndex)
removalResult.countChangeBeforeVisible += removals[i].count;
else
- removalResult.countChangeBeforeVisible += (prevFirstVisibleIndex - removals[i].index);
+ removalResult.countChangeBeforeVisible += (correctedFirstVisibleIndex - removals[i].index);
}
}
if (runDelayedRemoveTransition) {