From 8e35b7a1adac17bdfbbe6f3cd09b558103be2858 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Mon, 13 Feb 2017 22:30:51 +0100 Subject: [PATCH] Do not set center when touches count has changed --- src/ol/interaction/dragpan.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ol/interaction/dragpan.js b/src/ol/interaction/dragpan.js index 047abd27d7..9b8ab51df8 100644 --- a/src/ol/interaction/dragpan.js +++ b/src/ol/interaction/dragpan.js @@ -39,6 +39,11 @@ ol.interaction.DragPan = function(opt_options) { */ this.lastCentroid = null; + /** + * @type {number} + */ + this.lastPointersCount_; + /** * @private * @type {ol.EventsConditionType} @@ -62,12 +67,13 @@ ol.inherits(ol.interaction.DragPan, ol.interaction.Pointer); * @private */ ol.interaction.DragPan.handleDragEvent_ = function(mapBrowserEvent) { + var targetPointers = this.targetPointers; var centroid = - ol.interaction.Pointer.centroid(this.targetPointers); + ol.interaction.Pointer.centroid(targetPointers); if (this.kinetic_) { this.kinetic_.update(centroid[0], centroid[1]); } - if (this.lastCentroid) { + if (this.lastCentroid && targetPointers.length == this.lastPointersCount_) { var deltaX = this.lastCentroid[0] - centroid[0]; var deltaY = centroid[1] - this.lastCentroid[1]; var map = mapBrowserEvent.map; @@ -81,6 +87,7 @@ ol.interaction.DragPan.handleDragEvent_ = function(mapBrowserEvent) { view.setCenter(center); } this.lastCentroid = centroid; + this.lastPointersCount_ = targetPointers.length; };