summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2016-01-19 20:46:05 +0200
committerTeemu Suo-Anttila <teemusa@vaadin.com>2016-02-15 17:11:20 +0200
commite1126078e1b1215ecc26117db5730b618484e994 (patch)
tree514d5cc33c68fca791389af9921fa485b62576a7
parent04a99893d18a3d4ee64beeaa6cab74b4678d4bad (diff)
downloadvaadin-framework-e1126078e1b1215ecc26117db5730b618484e994.tar.gz
vaadin-framework-e1126078e1b1215ecc26117db5730b618484e994.zip
Fix Editor overlay position when footer is displayed on top (#19491)
Change-Id: I6ad09f0d69073042e76bb208b951824333cba230
-rw-r--r--client/src/com/vaadin/client/widgets/Grid.java8
-rw-r--r--uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java21
2 files changed, 26 insertions, 3 deletions
diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java
index 0de5e7a239..252bcfed3c 100644
--- a/client/src/com/vaadin/client/widgets/Grid.java
+++ b/client/src/com/vaadin/client/widgets/Grid.java
@@ -1817,9 +1817,7 @@ public class Grid<T> extends ResizeComposite implements
@Override
public void onScroll(ScrollEvent event) {
updateHorizontalScrollPosition();
- if (!isBuffered()) {
- updateVerticalScrollPosition();
- }
+ updateVerticalScrollPosition();
}
});
@@ -2109,6 +2107,10 @@ public class Grid<T> extends ResizeComposite implements
* row container if the edited row is scrolled out of the visible area.
*/
private void updateVerticalScrollPosition() {
+ if (isBuffered()) {
+ return;
+ }
+
double newScrollTop = grid.getScrollTop();
int gridTop = grid.getElement().getAbsoluteTop();
diff --git a/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java b/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
index 769fa52323..df250357d8 100644
--- a/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
+++ b/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
@@ -15,6 +15,8 @@
*/
package com.vaadin.tests.fieldgroup;
+import static org.junit.Assert.assertFalse;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -89,4 +91,23 @@ public class BasicCrudGridEditorRowTest extends MultiBrowserTest {
Assert.assertNotEquals("Checkbox value did not change", value,
cb.getValue());
}
+
+ @Test
+ public void testNoTopStyleSetOnEditorOpenWithFooterOnTop() {
+ GridCellElement cell = grid.getCell(2, 3);
+ // Open editor row
+ new Actions(getDriver()).doubleClick(cell).perform();
+
+ // Close editor
+ new Actions(getDriver()).sendKeys(Keys.ESCAPE).perform();
+
+ cell = grid.getCell(14, 3);
+
+ // Open editor row
+ new Actions(getDriver()).doubleClick(cell).perform();
+
+ String attribute = grid.getEditor().getAttribute("style").toLowerCase();
+ assertFalse("Style should not contain top.", attribute.contains("top:"));
+ }
+
}