diff --git a/src/ol/interaction/dragpaninteraction.js b/src/ol/interaction/dragpaninteraction.js index 02561e4960..86ebc1240c 100644 --- a/src/ol/interaction/dragpaninteraction.js +++ b/src/ol/interaction/dragpaninteraction.js @@ -78,7 +78,7 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) { var map = mapBrowserEvent.map; var view = map.getView(); - view.setHint(ol.ViewHint.INTERACTING, -1); + var interacting = view.setHint(ol.ViewHint.INTERACTING, -1); if (this.kinetic_ && this.kinetic_.end()) { var distance = this.kinetic_.getDistance(); @@ -93,6 +93,8 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) { centerpx.y - distance * Math.sin(angle)); var dest = map.getCoordinateFromPixel(destpx); view.setCenter(dest); + } else if (interacting === 0) { + map.requestRenderFrame(); } }; diff --git a/src/ol/interaction/touchpaninteraction.js b/src/ol/interaction/touchpaninteraction.js index 3d48a04a40..8bd3ef35d3 100644 --- a/src/ol/interaction/touchpaninteraction.js +++ b/src/ol/interaction/touchpaninteraction.js @@ -81,7 +81,7 @@ ol.interaction.TouchPan.prototype.handleTouchEnd = var map = mapBrowserEvent.map; var view = map.getView(); if (this.targetTouches.length == 0) { - view.setHint(ol.ViewHint.INTERACTING, -1); + var interacting = view.setHint(ol.ViewHint.INTERACTING, -1); if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) { var distance = this.kinetic_.getDistance(); var angle = this.kinetic_.getAngle(); @@ -94,6 +94,8 @@ ol.interaction.TouchPan.prototype.handleTouchEnd = centerpx.y - distance * Math.sin(angle)); var dest = map.getCoordinateFromPixel(destpx); view.setCenter(dest); + } else if (interacting === 0) { + map.requestRenderFrame(); } return false; } else {