From 9a7798e6393152027f7ac88ca449959a6bd71ce0 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Tue, 19 Jan 2016 20:46:05 +0200 Subject: Fix Editor overlay position when footer is displayed on top (#19491) Change-Id: Ifffe66c8a872fe3625cf8c60115b172610b6e9b5 --- client/src/com/vaadin/client/widgets/Grid.java | 8 +++++--- .../fieldgroup/BasicCrudGridEditorRowTest.java | 21 +++++++++++++++++++++ 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 extends ResizeComposite implements @Override public void onScroll(ScrollEvent event) { updateHorizontalScrollPosition(); - if (!isBuffered()) { - updateVerticalScrollPosition(); - } + updateVerticalScrollPosition(); } }); @@ -2109,6 +2107,10 @@ public class Grid 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:")); + } + } -- cgit v1.2.3