allow dragging for mouse/ms/native when pointer is outside map viewport element

This commit is contained in:
tsauerwein
2014-02-07 15:31:49 +01:00
parent ee2174785f
commit c4c1eb7d45
6 changed files with 190 additions and 5 deletions
+15 -5
View File
@@ -224,6 +224,12 @@ ol.MapBrowserEventHandler.prototype.handlePointerUp_ = function(browserEvent) {
this.dispatchEvent(newEvent);
if (this.activePointers_ <= 0) {
this.pointerEventHandler_.unlistenOnDocument(
ol.MapBrowserEvent.EventType.POINTERMOVE,
this.handlePointerMove_, false, this);
this.pointerEventHandler_.unlistenOnDocument(
ol.MapBrowserEvent.EventType.POINTERUP,
this.handlePointerUp_, false, this);
goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey);
this.dragListenerKeys_ = null;
}
@@ -254,13 +260,16 @@ ol.MapBrowserEventHandler.prototype.handlePointerDown_ =
this.dragged_ = false;
if (goog.isNull(this.dragListenerKeys_)) {
this.pointerEventHandler_.listenOnDocument(
ol.MapBrowserEvent.EventType.POINTERMOVE,
this.handlePointerMove_, false, this);
this.pointerEventHandler_.listenOnDocument(
ol.MapBrowserEvent.EventType.POINTERUP,
this.handlePointerUp_, false, this);
this.dragListenerKeys_ = [
goog.events.listen(this.pointerEventHandler_,
ol.MapBrowserEvent.EventType.POINTERMOVE,
this.handlePointerMove_, false, this),
goog.events.listen(this.pointerEventHandler_,
[ol.MapBrowserEvent.EventType.POINTERUP,
ol.MapBrowserEvent.EventType.POINTERCANCEL],
[ol.MapBrowserEvent.EventType.POINTERCANCEL],
this.handlePointerUp_, false, this)
];
}
@@ -341,6 +350,7 @@ ol.MapBrowserEvent.EventType = {
POINTERDOWN: 'pointerdown',
POINTERUP: 'pointerup',
POINTEROVER: 'pointerover',
POINTEROUT: 'pointerout',
POINTERENTER: 'pointerenter',
POINTERLEAVE: 'pointerleave',
POINTERCANCEL: 'pointercancel'