From 32ffb1ecae405c577d96ba3a9834c4c9f1288286 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Mon, 3 Mar 2014 17:54:33 +0100 Subject: [PATCH] Relay pointermove events again This will be needed for hover actions. --- src/ol/mapbrowserevent.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js index 5c94b1d975..ff9037bc22 100644 --- a/src/ol/mapbrowserevent.js +++ b/src/ol/mapbrowserevent.js @@ -189,6 +189,11 @@ ol.MapBrowserEventHandler = function(map) { this.pointerdownListenerKey_ = goog.events.listen(this.pointerEventHandler_, ol.pointer.EventType.POINTERDOWN, this.handlePointerDown_, false, this); + + this.relayedListenerKey_ = goog.events.listen(this.pointerEventHandler_, + [ol.pointer.EventType.POINTERMOVE], + this.relayEvent_, false, this); + }; goog.inherits(ol.MapBrowserEventHandler, goog.events.EventTarget); @@ -344,10 +349,26 @@ ol.MapBrowserEventHandler.prototype.handlePointerMove_ = }; +/** + * Wrap and relay a pointer event. Note that this requires that the type + * string for the MapBrowserPointerEvent matches the PointerEvent type. + * @param {ol.pointer.PointerEvent} pointerEvent Pointer event. + * @private + */ +ol.MapBrowserEventHandler.prototype.relayEvent_ = function(pointerEvent) { + this.dispatchEvent(new ol.MapBrowserPointerEvent( + pointerEvent.type, this.map_, pointerEvent)); +}; + + /** * @inheritDoc */ ol.MapBrowserEventHandler.prototype.disposeInternal = function() { + if (!goog.isNull(this.relayedListenerKey_)) { + goog.events.unlistenByKey(this.relayedListenerKey_); + this.relayedListenerKey_ = null; + } if (!goog.isNull(this.pointerdownListenerKey_)) { goog.events.unlistenByKey(this.pointerdownListenerKey_); this.pointerdownListenerKey_ = null;