From 09719bdc703e88131007e342cfccd64063b610e3 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 5 Jun 2014 11:21:03 +0200 Subject: [PATCH] Fixes button handlers event type --- src/ol/control/fullscreencontrol.js | 30 +++++++++++++++++----- src/ol/control/rotatecontrol.js | 31 ++++++++++++++++------ src/ol/control/zoomcontrol.js | 37 +++++++++++++++++++-------- src/ol/control/zoomtoextentcontrol.js | 31 ++++++++++++++++------ 4 files changed, 96 insertions(+), 33 deletions(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index 318008929c..4c524d4a80 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -51,7 +51,7 @@ ol.control.FullScreen = function(opt_options) { var buttonHandler = new ol.pointer.PointerEventHandler(button); this.registerDisposable(buttonHandler); goog.events.listen(buttonHandler, - ol.pointer.EventType.POINTERUP, this.handleClick_, false, this); + ol.pointer.EventType.POINTERUP, this.handlePointerUp_, false, this); goog.events.listen(button, goog.events.EventType.CLICK, this.handleClick_, false, this); @@ -87,16 +87,32 @@ goog.inherits(ol.control.FullScreen, ol.control.Control); /** - * @param {ol.pointer.PointerEvent} pointerEvent Pointer event. + * @param {goog.events.BrowserEvent} event The event to handle * @private */ -ol.control.FullScreen.prototype.handleClick_ = function(pointerEvent) { - if (!googx.dom.fullscreen.isSupported()) { +ol.control.FullScreen.prototype.handleClick_ = function(event) { + if (event.screenX !== 0 && event.screenY !== 0) { return; } - if (goog.isDef(pointerEvent.browserEvent)) { - pointerEvent.browserEvent.preventDefault(); - } else if (pointerEvent.screenX !== 0 && pointerEvent.screenY !== 0) { + this.handleFullScreen_(); +}; + + +/** + * @param {ol.pointer.PointerEvent} pointerEvent The event to handle + * @private + */ +ol.control.FullScreen.prototype.handlePointerUp_ = function(pointerEvent) { + pointerEvent.browserEvent.preventDefault(); + this.handleFullScreen_(); +}; + + +/** + * @private + */ +ol.control.FullScreen.prototype.handleFullScreen_ = function() { + if (!googx.dom.fullscreen.isSupported()) { return; } var map = this.getMap(); diff --git a/src/ol/control/rotatecontrol.js b/src/ol/control/rotatecontrol.js index 80aa7eca93..e393289f32 100644 --- a/src/ol/control/rotatecontrol.js +++ b/src/ol/control/rotatecontrol.js @@ -51,9 +51,9 @@ ol.control.Rotate = function(opt_options) { var handler = new ol.pointer.PointerEventHandler(button); this.registerDisposable(handler); goog.events.listen(handler, ol.pointer.EventType.POINTERUP, - ol.control.Rotate.prototype.resetNorth_, false, this); + ol.control.Rotate.prototype.handlePointerUp_, false, this); goog.events.listen(button, goog.events.EventType.CLICK, - ol.control.Rotate.prototype.resetNorth_, false, this); + ol.control.Rotate.prototype.handleClick_, false, this); goog.events.listen(button, [ goog.events.EventType.MOUSEOUT, @@ -90,16 +90,31 @@ goog.inherits(ol.control.Rotate, ol.control.Control); /** - * @param {ol.pointer.PointerEvent} pointerEvent The pointer event to handle. + * @param {goog.events.BrowserEvent} event The event to handle * @private */ -ol.control.Rotate.prototype.resetNorth_ = function(pointerEvent) { - if (goog.isDef(pointerEvent.browserEvent)) { - pointerEvent.browserEvent.preventDefault(); - } else if (pointerEvent.screenX !== 0 && pointerEvent.screenY !== 0) { +ol.control.Rotate.prototype.handleClick_ = function(event) { + if (event.screenX !== 0 && event.screenY !== 0) { return; } - // prevent the anchor from getting appended to the url + this.resetNorth_(); +}; + + +/** + * @param {ol.pointer.PointerEvent} pointerEvent The event to handle + * @private + */ +ol.control.Rotate.prototype.handlePointerUp_ = function(pointerEvent) { + pointerEvent.browserEvent.preventDefault(); + this.resetNorth_(); +}; + + +/** + * @private + */ +ol.control.Rotate.prototype.resetNorth_ = function() { var map = this.getMap(); // FIXME works for View2D only var view = map.getView(); diff --git a/src/ol/control/zoomcontrol.js b/src/ol/control/zoomcontrol.js index e05cf15c22..d1fece14e4 100644 --- a/src/ol/control/zoomcontrol.js +++ b/src/ol/control/zoomcontrol.js @@ -55,10 +55,10 @@ ol.control.Zoom = function(opt_options) { this.registerDisposable(inElementHandler); goog.events.listen(inElementHandler, ol.pointer.EventType.POINTERUP, goog.partial( - ol.control.Zoom.prototype.zoomByDelta_, delta), false, this); + ol.control.Zoom.prototype.handlePointerUp_, delta), false, this); goog.events.listen(inElement, goog.events.EventType.CLICK, goog.partial( - ol.control.Zoom.prototype.zoomByDelta_, delta), false, this); + ol.control.Zoom.prototype.handleClick_, delta), false, this); goog.events.listen(inElement, [ goog.events.EventType.MOUSEOUT, @@ -79,10 +79,10 @@ ol.control.Zoom = function(opt_options) { this.registerDisposable(outElementHandler); goog.events.listen(outElementHandler, ol.pointer.EventType.POINTERUP, goog.partial( - ol.control.Zoom.prototype.zoomByDelta_, -delta), false, this); + ol.control.Zoom.prototype.handlePointerUp_, -delta), false, this); goog.events.listen(outElement, goog.events.EventType.CLICK, goog.partial( - ol.control.Zoom.prototype.zoomByDelta_, -delta), false, this); + ol.control.Zoom.prototype.handleClick_, -delta), false, this); goog.events.listen(outElement, [ goog.events.EventType.MOUSEOUT, @@ -113,16 +113,33 @@ goog.inherits(ol.control.Zoom, ol.control.Control); /** * @param {number} delta Zoom delta. - * @param {ol.pointer.PointerEvent} pointerEvent The pointer event to handle. + * @param {goog.events.BrowserEvent} event The event to handle * @private */ -ol.control.Zoom.prototype.zoomByDelta_ = function(delta, pointerEvent) { - if (goog.isDef(pointerEvent.browserEvent)) { - pointerEvent.browserEvent.preventDefault(); - } else if (pointerEvent.screenX !== 0 && pointerEvent.screenY !== 0) { +ol.control.Zoom.prototype.handleClick_ = function(delta, event) { + if (event.screenX !== 0 && event.screenY !== 0) { return; } - // prevent the anchor from getting appended to the url + this.zoomByDelta_(delta); +}; + + +/** + * @param {number} delta Zoom delta. + * @param {ol.pointer.PointerEvent} pointerEvent The event to handle + * @private + */ +ol.control.Zoom.prototype.handlePointerUp_ = function(delta, pointerEvent) { + pointerEvent.browserEvent.preventDefault(); + this.zoomByDelta_(delta); +}; + + +/** + * @param {number} delta Zoom delta. + * @private + */ +ol.control.Zoom.prototype.zoomByDelta_ = function(delta) { var map = this.getMap(); // FIXME works for View2D only var view = map.getView(); diff --git a/src/ol/control/zoomtoextentcontrol.js b/src/ol/control/zoomtoextentcontrol.js index 0be54736ba..d42d0ea003 100644 --- a/src/ol/control/zoomtoextentcontrol.js +++ b/src/ol/control/zoomtoextentcontrol.js @@ -47,9 +47,9 @@ ol.control.ZoomToExtent = function(opt_options) { var buttonHandler = new ol.pointer.PointerEventHandler(button); this.registerDisposable(buttonHandler); goog.events.listen(buttonHandler, ol.pointer.EventType.POINTERUP, - this.handleZoomToExtent_, false, this); + this.handlePointerUp_, false, this); goog.events.listen(button, goog.events.EventType.CLICK, - this.handleZoomToExtent_, false, this); + this.handleClick_, false, this); goog.events.listen(button, [ goog.events.EventType.MOUSEOUT, @@ -71,16 +71,31 @@ goog.inherits(ol.control.ZoomToExtent, ol.control.Control); /** - * @param {ol.pointer.PointerEvent} pointerEvent Pointer event. + * @param {goog.events.BrowserEvent} event The event to handle * @private */ -ol.control.ZoomToExtent.prototype.handleZoomToExtent_ = function(pointerEvent) { - if (goog.isDef(pointerEvent.browserEvent)) { - pointerEvent.browserEvent.preventDefault(); - } else if (pointerEvent.screenX !== 0 && pointerEvent.screenY !== 0) { +ol.control.ZoomToExtent.prototype.handleClick_ = function(event) { + if (event.screenX !== 0 && event.screenY !== 0) { return; } - // prevent #zoomExtent anchor from getting appended to the url + this.handleZoomToExtent_(); +}; + + +/** + * @param {ol.pointer.PointerEvent} pointerEvent The event to handle + * @private + */ +ol.control.ZoomToExtent.prototype.handlePointerUp_ = function(pointerEvent) { + pointerEvent.browserEvent.preventDefault(); + this.handleZoomToExtent_(); +}; + + +/** + * @private + */ +ol.control.ZoomToExtent.prototype.handleZoomToExtent_ = function() { var map = this.getMap(); var view = map.getView(); goog.asserts.assert(goog.isDef(view));