diff --git a/web/client-api/src/main/java/io/deephaven/web/client/api/subscription/ViewportData.java b/web/client-api/src/main/java/io/deephaven/web/client/api/subscription/ViewportData.java index d21247c2d10..c998321be4c 100644 --- a/web/client-api/src/main/java/io/deephaven/web/client/api/subscription/ViewportData.java +++ b/web/client-api/src/main/java/io/deephaven/web/client/api/subscription/ViewportData.java @@ -492,11 +492,11 @@ public MergeResults merge(DeltaUpdates updates) { } } - for (Iterator it = updated.modified.iterator(); it.hasNext();) { - int ii = it.next(); - updated.added.remove(ii); - updated.removed.remove(ii); - } + // exclude added items from being marked as modified, since we're hiding shifts from api consumers + updated.modified.removeAll(updated.added); + + // Any position which was both added and removed should instead be marked as modified, this cleans + // up anything excluded above that didn't otherwise make sense for (Iterator it = updated.removed.iterator(); it.hasNext();) { int ii = it.next(); if (updated.added.remove(ii)) {