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 { diff --git a/src/ol/view.js b/src/ol/view.js index 862cde3c08..9d727e3b4d 100644 --- a/src/ol/view.js +++ b/src/ol/view.js @@ -59,9 +59,11 @@ ol.View.prototype.getView3D = goog.abstractMethod; /** * @param {ol.ViewHint} hint Hint. * @param {number} delta Delta. + * @return {number} New value. */ ol.View.prototype.setHint = function(hint, delta) { goog.asserts.assert(0 <= hint && hint < this.hints_.length); this.hints_[hint] += delta; goog.asserts.assert(this.hints_[hint] >= 0); + return this.hints_[hint]; };