aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorAnna Koskinen <Ansku@users.noreply.github.com>2018-08-13 15:41:23 +0300
committerIlia Motornyi <elmot@vaadin.com>2018-08-13 15:41:23 +0300
commit062caa5b844dd6540b101dd04c612bc8e5948ad4 (patch)
tree76afb725266b84f6e2968d5ba7eea06d98c1111a /client
parent378d7f5a92338135829b8a28738e427a388faaf2 (diff)
downloadvaadin-framework-062caa5b844dd6540b101dd04c612bc8e5948ad4.tar.gz
vaadin-framework-062caa5b844dd6540b101dd04c612bc8e5948ad4.zip
Compensate for Grid editor moving out of sync horizontally. (#11092)
Fixes #10998
Diffstat (limited to 'client')
-rwxr-xr-xclient/src/main/java/com/vaadin/client/widgets/Grid.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/client/src/main/java/com/vaadin/client/widgets/Grid.java b/client/src/main/java/com/vaadin/client/widgets/Grid.java
index 021be95e9a..b0bb391050 100755
--- a/client/src/main/java/com/vaadin/client/widgets/Grid.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java
@@ -2136,8 +2136,20 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
private void updateHorizontalScrollPosition() {
double scrollLeft = grid.getScrollLeft();
- cellWrapper.getStyle().setLeft(
- frozenCellWrapper.getOffsetWidth() - scrollLeft, Unit.PX);
+ int frozenWidth = frozenCellWrapper.getOffsetWidth();
+ double newLeft = frozenWidth - scrollLeft;
+ cellWrapper.getStyle().setLeft(newLeft, Unit.PX);
+
+ // sometimes focus handling twists the editor row out of alignment
+ // with the grid itself and the position needs to be compensated for
+ TableRowElement rowElement = grid.getEscalator().getBody()
+ .getRowElement(grid.getEditor().getRow());
+ int rowLeft = rowElement.getAbsoluteLeft();
+ int editorLeft = cellWrapper.getAbsoluteLeft();
+ if (editorLeft != rowLeft + frozenWidth) {
+ cellWrapper.getStyle().setLeft(newLeft + rowLeft - editorLeft,
+ Unit.PX);
+ }
}
/**