summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorManolo Carrasco <manolo@vaadin.com>2015-05-15 08:43:28 +0200
committerVaadin Code Review <review@vaadin.com>2015-06-08 08:58:46 +0000
commitacce09843e9fe1c26885dd09d723cbf0de969750 (patch)
treeccdcfdb6e319bbde9a87bc5350574b4742c8eeba /client
parent3a42436fc9ce52e9689adf7166a9c5698224ec40 (diff)
downloadvaadin-framework-acce09843e9fe1c26885dd09d723cbf0de969750.tar.gz
vaadin-framework-acce09843e9fe1c26885dd09d723cbf0de969750.zip
Open editor on double touch (#17338)
Change-Id: I3ec5faf0086be70eda872ec81ea40f69d9c3e627
Diffstat (limited to 'client')
-rw-r--r--client/src/com/vaadin/client/widgets/Grid.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java
index 0eabf3686d..0941a1ea97 100644
--- a/client/src/com/vaadin/client/widgets/Grid.java
+++ b/client/src/com/vaadin/client/widgets/Grid.java
@@ -31,6 +31,7 @@ import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;
+import com.google.gwt.core.client.Duration;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.core.shared.GWT;
@@ -3494,6 +3495,7 @@ public class Grid<T> extends ResizeComposite implements
private final AutoColumnWidthsRecalculator autoColumnWidthsRecalculator = new AutoColumnWidthsRecalculator();
private boolean enabled = true;
+ private double lastTouchEventTime = 0;
private DetailsGenerator detailsGenerator = DetailsGenerator.NULL;
private GridSpacerUpdater gridSpacerUpdater = new GridSpacerUpdater();
@@ -6438,8 +6440,15 @@ public class Grid<T> extends ResizeComposite implements
final boolean closeEvent = event.getTypeInt() == Event.ONKEYDOWN
&& event.getKeyCode() == Editor.KEYCODE_HIDE;
+ double now = Duration.currentTimeMillis();
final boolean openEvent = event.getTypeInt() == Event.ONDBLCLICK
- || (event.getTypeInt() == Event.ONKEYDOWN && event.getKeyCode() == Editor.KEYCODE_SHOW);
+ || (event.getTypeInt() == Event.ONKEYDOWN && event.getKeyCode() == Editor.KEYCODE_SHOW)
+ || (event.getTypeInt() == Event.ONTOUCHEND && now
+ - lastTouchEventTime < 500);
+
+ if (event.getTypeInt() == Event.ONTOUCHEND) {
+ lastTouchEventTime = now;
+ }
if (editor.getState() != Editor.State.INACTIVE) {
if (closeEvent) {
@@ -6452,6 +6461,7 @@ public class Grid<T> extends ResizeComposite implements
if (container == escalator.getBody() && editor.isEnabled() && openEvent) {
editor.editRow(eventCell.getRowIndex(),
eventCell.getColumnIndexDOM());
+ event.preventDefault();
return true;
}