aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMehdi Javan <32511762+mehdi-vaadin@users.noreply.github.com>2020-04-16 11:35:51 +0300
committerGitHub <noreply@github.com>2020-04-16 11:35:51 +0300
commit5cb72e21949cf1bf884282b79e2dfe2c1280129f (patch)
tree019868790e342178e5798ad6b8988ac033417ce2
parentba0ac83cdde513e6ced13e71251baf95831e28bb (diff)
downloadvaadin-framework-5cb72e21949cf1bf884282b79e2dfe2c1280129f.tar.gz
vaadin-framework-5cb72e21949cf1bf884282b79e2dfe2c1280129f.zip
Fix incorrect position of column selector in MPR (#11946)
* Change ContextMenu position from absolute to fixed * Use getBoundingClientRect to get the coordinates of columnSelector in VScrollTable when the context menu is being opened * Update TableTooManyColumnsTest screenshot * Upgrade Chrome version in VerifyBrowserVersionTest * Update ValoThemeUITest-sliders screenshot
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VContextMenu.java2
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VScrollTable.java8
-rw-r--r--[-rwxr-xr-x]uitest/reference-screenshots/TableTooManyColumnsTest-testDropdownTable_ANY_Chrome__TableTooManyColumnsTest-testDropdownTable.pngbin66195 -> 66318 bytes
-rw-r--r--uitest/reference-screenshots/ValoThemeUITest-sliders_ANY_Chrome__sliders.pngbin77518 -> 77212 bytes
-rw-r--r--uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java2
5 files changed, 8 insertions, 4 deletions
diff --git a/client/src/main/java/com/vaadin/client/ui/VContextMenu.java b/client/src/main/java/com/vaadin/client/ui/VContextMenu.java
index d9a29a9ec6..ffb8a21099 100644
--- a/client/src/main/java/com/vaadin/client/ui/VContextMenu.java
+++ b/client/src/main/java/com/vaadin/client/ui/VContextMenu.java
@@ -20,6 +20,7 @@ import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
+import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.TableRowElement;
import com.google.gwt.dom.client.TableSectionElement;
import com.google.gwt.event.dom.client.BlurEvent;
@@ -166,6 +167,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
setHeight(Window.getClientHeight() + "px");
}
setPopupPosition(left, top);
+ getElement().getStyle().setPosition(Style.Position.FIXED);
/*
* Move keyboard focus to menu, deferring the focus setting so
diff --git a/client/src/main/java/com/vaadin/client/ui/VScrollTable.java b/client/src/main/java/com/vaadin/client/ui/VScrollTable.java
index 1158dd1f80..d749407441 100644
--- a/client/src/main/java/com/vaadin/client/ui/VScrollTable.java
+++ b/client/src/main/java/com/vaadin/client/ui/VScrollTable.java
@@ -3926,10 +3926,12 @@ public class VScrollTable extends FlowPanel
public void onBrowserEvent(Event event) {
if (enabled) {
if (event.getEventTarget().cast() == columnSelector) {
- final int left = DOM.getAbsoluteLeft(columnSelector);
- final int top = DOM.getAbsoluteTop(columnSelector)
+ WidgetUtil.TextRectangle clientRect = WidgetUtil
+ .getBoundingClientRect(columnSelector);
+ final int left = (int) clientRect.getLeft();
+ final int top = (int) (clientRect.getTop()
+ DOM.getElementPropertyInt(columnSelector,
- "offsetHeight");
+ "offsetHeight"));
client.getContextMenu().showAt(this, left, top);
}
}
diff --git a/uitest/reference-screenshots/TableTooManyColumnsTest-testDropdownTable_ANY_Chrome__TableTooManyColumnsTest-testDropdownTable.png b/uitest/reference-screenshots/TableTooManyColumnsTest-testDropdownTable_ANY_Chrome__TableTooManyColumnsTest-testDropdownTable.png
index 96910b4bc6..646555a3c0 100755..100644
--- a/uitest/reference-screenshots/TableTooManyColumnsTest-testDropdownTable_ANY_Chrome__TableTooManyColumnsTest-testDropdownTable.png
+++ b/uitest/reference-screenshots/TableTooManyColumnsTest-testDropdownTable_ANY_Chrome__TableTooManyColumnsTest-testDropdownTable.png
Binary files differ
diff --git a/uitest/reference-screenshots/ValoThemeUITest-sliders_ANY_Chrome__sliders.png b/uitest/reference-screenshots/ValoThemeUITest-sliders_ANY_Chrome__sliders.png
index 17b7280144..26148e93ec 100644
--- a/uitest/reference-screenshots/ValoThemeUITest-sliders_ANY_Chrome__sliders.png
+++ b/uitest/reference-screenshots/ValoThemeUITest-sliders_ANY_Chrome__sliders.png
Binary files differ
diff --git a/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java b/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
index 3dd97796d1..21db6bd366 100644
--- a/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
@@ -25,7 +25,7 @@ public class VerifyBrowserVersionTest extends MultiBrowserTest {
// Chrome version does not necessarily match the desired version
// because of auto updates...
browserIdentifier = getExpectedUserAgentString(
- getDesiredCapabilities()) + "78";
+ getDesiredCapabilities()) + "81";
} else {
browserIdentifier = getExpectedUserAgentString(desiredCapabilities)
+ desiredCapabilities.getVersion();