From 0e49edd8d4cf5f5e824360dc209ee8dbadf12da4 Mon Sep 17 00:00:00 2001 From: Colin Alworth Date: Fri, 12 Nov 2021 10:25:20 -0600 Subject: [PATCH] Correctly account for modified rows that shifted in the current delta Fixes #1554 --- .../web/client/api/subscription/ViewportData.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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)) {