aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2016-11-11 14:33:39 +0000
committerArtur Signell <artur@vaadin.com>2016-11-11 14:34:09 +0000
commit9726f1581a7722d58494f93d0085535db4772a33 (patch)
tree75439eef1d48efe0be4d58e9e8e6f4492386efe0
parent4326b480ad11f23d8fc5941294af895716dc6427 (diff)
downloadvaadin-framework-9726f1581a7722d58494f93d0085535db4772a33.tar.gz
vaadin-framework-9726f1581a7722d58494f93d0085535db4772a33.zip
Revert "Fixed touch scrolling issue in Surface and WP devices (#18737)"
The patch prevents Escalator and Grid from ever being rendered on IE8 because element.addEventListener does not exist there This reverts commit eb2f5ac3a714aefce948d447a4004b94e35e44a9. Change-Id: I58f6db7432a1cd10299891b2d8c55c855e87265f
-rw-r--r--client/src/main/java/com/vaadin/client/BrowserInfo.java4
-rw-r--r--client/src/main/java/com/vaadin/client/widgets/Escalator.java80
-rw-r--r--themes/src/main/themes/VAADIN/themes/base/escalator/escalator.scss3
3 files changed, 4 insertions, 83 deletions
diff --git a/client/src/main/java/com/vaadin/client/BrowserInfo.java b/client/src/main/java/com/vaadin/client/BrowserInfo.java
index bce96fe2c7..f037fba175 100644
--- a/client/src/main/java/com/vaadin/client/BrowserInfo.java
+++ b/client/src/main/java/com/vaadin/client/BrowserInfo.java
@@ -245,10 +245,6 @@ public class BrowserInfo {
return browserDetails.isEdge();
}
- public boolean isIEOrEdge() {
- return browserDetails.isIE() || browserDetails.isEdge();
- }
-
public boolean isFirefox() {
return browserDetails.isFirefox();
}
diff --git a/client/src/main/java/com/vaadin/client/widgets/Escalator.java b/client/src/main/java/com/vaadin/client/widgets/Escalator.java
index 14c75a00ba..9eaa7ddd36 100644
--- a/client/src/main/java/com/vaadin/client/widgets/Escalator.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Escalator.java
@@ -457,15 +457,6 @@ public class Escalator extends Widget
}
int pagePosition(CustomTouchEvent event) {
- // Use native event's screen x and y for IEs and Edge
- // since there is no touches for these browsers (#18737)
- if (BrowserInfo.get().isIEOrEdge()) {
- return vertical
- ? event.getNativeEvent().getClientY()
- + Window.getScrollTop()
- : event.getNativeEvent().getClientX()
- + Window.getScrollLeft();
- }
JsArray<Touch> a = event.getNativeEvent().getTouches();
return vertical ? a.get(0).getPageY() : a.get(0).getPageX();
}
@@ -505,7 +496,7 @@ public class Escalator extends Widget
};
public void touchStart(final CustomTouchEvent event) {
- if (allowTouch(event)) {
+ if (event.getNativeEvent().getTouches().length() == 1) {
if (yMov == null) {
yMov = new Movement(true);
xMov = new Movement(false);
@@ -553,15 +544,6 @@ public class Escalator extends Widget
}
}
- // Allow touchStart for IE and Edge even though there is no touch
- // (#18737),
- // otherwise allow touch only if there is a single touch in the
- // event
- private boolean allowTouch(final CustomTouchEvent event) {
- return BrowserInfo.get().isIEOrEdge()
- || event.getNativeEvent().getTouches().length() == 1;
- }
-
private double easingInOutCos(double val, double max) {
return 0.5 - 0.5 * Math.cos(Math.PI * Math.signum(val)
* Math.min(Math.abs(val), max) / max);
@@ -976,7 +958,7 @@ public class Escalator extends Widget
public native void attachTouchListeners(Element element)
/*
- * Attaching events with JSNI instead of the GWT event mechanism because
+ * Detaching events with JSNI instead of the GWT event mechanism because
* GWT didn't provide enough details in events, or triggering the event
* handlers with GWT bindings was unsuccessful. Maybe, with more time
* and skill, it could be done with better success. JavaScript overlay
@@ -1014,48 +996,6 @@ public class Escalator extends Widget
}
}-*/;
- /**
- * Using mousedown, mousemove, and mouseup for IE and Edge instead of
- * touch* listeners (#18737)
- *
- * @param element
- */
- public native void attachMouseDragListeners(Element element)
- /*
- * Attaching events with JSNI instead of the GWT event mechanism because
- * GWT didn't provide enough details in events, or triggering the event
- * handlers with GWT bindings was unsuccessful. Maybe, with more time
- * and skill, it could be done with better success. JavaScript overlay
- * types might work. This might also get rid of the JsniWorkaround
- * class.
- */
- /*-{
- element.addEventListener("mousedown", this.@com.vaadin.client.widgets.JsniWorkaround::touchStartFunction);
- element.addEventListener("mousemove", this.@com.vaadin.client.widgets.JsniWorkaround::touchMoveFunction);
- element.addEventListener("mouseup", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
- }-*/;
-
- /**
- * Using mousedown, mousemove, and mouseup for IE and Edge instead of
- * touch* listeners (#18737)
- *
- * @param element
- */
- public native void detachMouseDragListeners(Element element)
- /*
- * Detaching events with JSNI instead of the GWT event mechanism because
- * GWT didn't provide enough details in events, or triggering the event
- * handlers with GWT bindings was unsuccessful. Maybe, with more time
- * and skill, it could be done with better success. JavaScript overlay
- * types might work. This might also get rid of the JsniWorkaround
- * class.
- */
- /*-{
- element.removeEventListener("mousedown", this.@com.vaadin.client.widgets.JsniWorkaround::touchStartFunction);
- element.removeEventListener("mousemove", this.@com.vaadin.client.widgets.JsniWorkaround::touchMoveFunction);
- element.removeEventListener("mouseup", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
- }-*/;
-
public void scrollToColumn(final int columnIndex,
final ScrollDestination destination, final int padding) {
assert columnIndex >= columnConfiguration.frozenColumns : "Can't scroll to a frozen column";
@@ -5832,13 +5772,7 @@ public class Escalator extends Widget
scroller.attachScrollListener(verticalScrollbar.getElement());
scroller.attachScrollListener(horizontalScrollbar.getElement());
scroller.attachMousewheelListener(getElement());
-
- if (BrowserInfo.get().isIEOrEdge()) {
- // Touch listeners doesn't work for IE and Edge (#18737)
- scroller.attachMouseDragListeners(getElement());
- } else {
- scroller.attachTouchListeners(getElement());
- }
+ scroller.attachTouchListeners(getElement());
}
@Override
@@ -5847,13 +5781,7 @@ public class Escalator extends Widget
scroller.detachScrollListener(verticalScrollbar.getElement());
scroller.detachScrollListener(horizontalScrollbar.getElement());
scroller.detachMousewheelListener(getElement());
-
- if (BrowserInfo.get().isIEOrEdge()) {
- // Touch listeners doesn't work for IE and Edge (#18737)
- scroller.detachMouseDragListeners(getElement());
- } else {
- scroller.detachTouchListeners(getElement());
- }
+ scroller.detachTouchListeners(getElement());
/*
* We can call paintRemoveRows here, because static ranges are simple to
diff --git a/themes/src/main/themes/VAADIN/themes/base/escalator/escalator.scss b/themes/src/main/themes/VAADIN/themes/base/escalator/escalator.scss
index 15fda265ca..2d5ad729fc 100644
--- a/themes/src/main/themes/VAADIN/themes/base/escalator/escalator.scss
+++ b/themes/src/main/themes/VAADIN/themes/base/escalator/escalator.scss
@@ -75,9 +75,6 @@
}
.#{$primaryStyleName}-body {
- -ms-touch-action: none;
- touch-action: none;
-
z-index: 0;
top: 0;