]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Limited the double click fix to touch devices.
authorsamhed <samuel@cendio.se>
Wed, 3 Jul 2013 12:41:09 +0000 (14:41 +0200)
committersamhed <samuel@cendio.se>
Wed, 3 Jul 2013 12:41:09 +0000 (14:41 +0200)
include/input.js

index 05d05f1ab94b1b86ba861ade389d6d86cb2c4d52..b286a4963eb7b922f73618919c1040f6f496cefd 100644 (file)
@@ -491,7 +491,7 @@ var that           = {},  // Public API methods
     mouseCaptured  = false;
 
 var doubleClickTimer = null,
-    lastClickPos = null;
+    lastTouchPos = null;
 
 // Configuration attributes
 Util.conf_defaults(conf, that, defaults, [
@@ -537,29 +537,29 @@ function onMouseButton(e, down) {
     evt = (e ? e : window.event);
     pos = Util.getEventPosition(e, conf.target, conf.scale);
 
-    // When two clicks occur within 500 ms of each other and are
-    // closer than 50 pixels together a double click is triggered.
-    if (down == 1) {
-        if (doubleClickTimer == null) {
-            lastClickPos = pos;
-        } else {
-            clearTimeout(doubleClickTimer); 
+    if (e.touches || e.changedTouches) {
+        // Touch device
+
+        // When two touches occur within 500 ms of each other and are
+        // closer than 50 pixels together a double click is triggered.
+        if (down == 1) {
+            if (doubleClickTimer == null) {
+                lastTouchPos = pos;
+            } else {
+                clearTimeout(doubleClickTimer); 
 
-            var xs = lastClickPos.x - pos.x;
-            var ys = lastClickPos.y - pos.y;
-            var d = Math.sqrt((xs * xs) + (ys * ys));
+                var xs = lastTouchPos.x - pos.x;
+                var ys = lastTouchPos.y - pos.y;
+                var d = Math.sqrt((xs * xs) + (ys * ys));
 
-            // When the distance between the two clicks is less than 50 pixels
-            // force the position of the latter click to the position of the first
-            if (d < 50) {
-                pos = lastClickPos;
+                // When the distance between the two touches is less than 50 pixels
+                // force the position of the latter touch to the position of the first
+                if (d < 50) {
+                    pos = lastTouchPos;
+                }
             }
+            doubleClickTimer = setTimeout(resetDoubleClickTimer, 500);
         }
-        doubleClickTimer = setTimeout(resetDoubleClickTimer, 500);
-    }
-
-    if (e.touches || e.changedTouches) {
-        // Touch device
         bmask = conf.touchButton;
         // If bmask is set
     } else if (evt.which) {