From 7415a11c63600f22ade2f97927a98eec939f4d17 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 27 Sep 2012 18:07:02 +0200 Subject: [PATCH] More responsive zoom buttons on touch devices thanks to @ahocevar --- src/ol/control/zoom.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ol/control/zoom.js b/src/ol/control/zoom.js index 5e9126093d..754bae35f8 100644 --- a/src/ol/control/zoom.js +++ b/src/ol/control/zoom.js @@ -5,6 +5,7 @@ goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.events'); goog.require('goog.events.EventType'); +goog.require('ol.BrowserFeature'); goog.require('ol.Projection'); goog.require('ol.control.Control'); @@ -25,22 +26,26 @@ ol.control.ZoomOptions; */ ol.control.Zoom = function(zoomOptions) { + var eventType = ol.BrowserFeature.HAS_TOUCH ? + goog.events.EventType.TOUCHEND : goog.events.EventType.CLICK; + var inElement = goog.dom.createDom(goog.dom.TagName.A, { 'href': '#zoomIn', 'class': 'ol-zoom-in' }, '+'); - goog.events.listen( - inElement, goog.events.EventType.CLICK, this.handleIn_, false, this); + goog.events.listen(inElement, eventType, this.handleIn_, false, this); var outElement = goog.dom.createDom(goog.dom.TagName.A, { 'href': '#zoomOut', 'class': 'ol-zoom-out' }, '\u2212'); - goog.events.listen( - outElement, goog.events.EventType.CLICK, this.handleOut_, false, this); + goog.events.listen(outElement, eventType, this.handleOut_, false, this); var element = goog.dom.createDom( goog.dom.TagName.DIV, 'ol-zoom', inElement, outElement); + goog.events.listen( + element, ol.BrowserFeature.HAS_TOUCH ? goog.events.EventType.TOUCHSTART : + goog.events.EventType.MOUSEDOWN, goog.events.Event.stopPropagation); goog.base(this, { element: element,