summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/src/com/vaadin/client/widgets/Grid.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java
index 8a8aa75e92..cb9e9c55d1 100644
--- a/client/src/com/vaadin/client/widgets/Grid.java
+++ b/client/src/com/vaadin/client/widgets/Grid.java
@@ -2148,10 +2148,12 @@ public class Grid<T> extends ResizeComposite implements
rowWithFocus = removed.getStart() - 1;
} else {
if (escalator.getHeader().getRowCount() > 0) {
- rowWithFocus = lastFocusedHeaderRow;
+ rowWithFocus = Math.min(lastFocusedHeaderRow, escalator
+ .getHeader().getRowCount() - 1);
containerWithFocus = escalator.getHeader();
} else if (escalator.getFooter().getRowCount() > 0) {
- rowWithFocus = lastFocusedFooterRow;
+ rowWithFocus = Math.min(lastFocusedFooterRow, escalator
+ .getFooter().getRowCount() - 1);
containerWithFocus = escalator.getFooter();
}
}
@@ -4571,8 +4573,12 @@ public class Grid<T> extends ResizeComposite implements
if (newSize > oldSize) {
body.insertRows(oldSize, newSize - oldSize);
+ cellFocusHandler.rowsAddedToBody(Range.withLength(oldSize,
+ newSize - oldSize));
} else if (newSize < oldSize) {
body.removeRows(newSize, oldSize - newSize);
+ cellFocusHandler.rowsRemovedFromBody(Range.withLength(
+ newSize, oldSize - newSize));
}
if (newSize > 0) {