diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js
index 7efa027cbe..b729e4aa0a 100644
--- a/src/ol/mapbrowserevent.js
+++ b/src/ol/mapbrowserevent.js
@@ -147,10 +147,10 @@ ol.MapBrowserEventHandler = function(map) {
this.dragging_ = false;
/**
- * @type {Array.
}
+ * @type {!Array.}
* @private
*/
- this.dragListenerKeys_ = null;
+ this.dragListenerKeys_ = [];
/**
* @type {?ol.events.Key}
@@ -280,7 +280,7 @@ ol.MapBrowserEventHandler.prototype.handlePointerUp_ = function(pointerEvent) {
'this.activePointers_ should be equal to or larger than 0');
if (this.activePointers_ === 0) {
this.dragListenerKeys_.forEach(ol.events.unlistenByKey);
- this.dragListenerKeys_ = null;
+ this.dragListenerKeys_.length = 0;
this.dragging_ = false;
this.down_ = null;
goog.dispose(this.documentPointerEventHandler_);
@@ -311,7 +311,7 @@ ol.MapBrowserEventHandler.prototype.handlePointerDown_ = function(pointerEvent)
this.down_ = pointerEvent;
- if (!this.dragListenerKeys_) {
+ if (this.dragListenerKeys_.length === 0) {
/* Set up a pointer event handler on the `document`,
* which is required when the pointer is moved outside
* the viewport when dragging.
@@ -319,7 +319,7 @@ ol.MapBrowserEventHandler.prototype.handlePointerDown_ = function(pointerEvent)
this.documentPointerEventHandler_ =
new ol.pointer.PointerEventHandler(document);
- this.dragListenerKeys_ = [
+ this.dragListenerKeys_.push(
ol.events.listen(this.documentPointerEventHandler_,
ol.MapBrowserEvent.EventType.POINTERMOVE,
this.handlePointerMove_, this),
@@ -342,7 +342,7 @@ ol.MapBrowserEventHandler.prototype.handlePointerDown_ = function(pointerEvent)
ol.events.listen(this.pointerEventHandler_,
ol.MapBrowserEvent.EventType.POINTERCANCEL,
this.handlePointerUp_, this)
- ];
+ );
}
};
@@ -409,10 +409,10 @@ ol.MapBrowserEventHandler.prototype.disposeInternal = function() {
ol.events.unlistenByKey(this.pointerdownListenerKey_);
this.pointerdownListenerKey_ = null;
}
- if (this.dragListenerKeys_) {
- this.dragListenerKeys_.forEach(ol.events.unlistenByKey);
- this.dragListenerKeys_ = null;
- }
+
+ this.dragListenerKeys_.forEach(ol.events.unlistenByKey);
+ this.dragListenerKeys_.length = 0;
+
if (this.documentPointerEventHandler_) {
goog.dispose(this.documentPointerEventHandler_);
this.documentPointerEventHandler_ = null;