From: samhed Date: Wed, 3 Jul 2013 12:41:09 +0000 (+0200) Subject: Limited the double click fix to touch devices. X-Git-Tag: v1.0.0~434^2~9^2~3 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=a4ec2f5c7db27bbbe6376264b840e477ed4dd297;p=mirror_novnc.git Limited the double click fix to touch devices. --- diff --git a/include/input.js b/include/input.js index 05d05f1..b286a49 100644 --- a/include/input.js +++ b/include/input.js @@ -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) {