From 61204d10d8ba8c9b2242e94937f310f9019f7706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 15 Apr 2013 10:46:30 +0200 Subject: [PATCH 1/2] setHint returns new hint value --- src/ol/view.js | 2 ++ 1 file changed, 2 insertions(+) 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]; }; From 49bf204c13dfef265f1167f131d0c3e898d49fec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 15 Apr 2013 10:46:55 +0200 Subject: [PATCH 2/2] pan interactions call requestRenderFrame on dragend --- src/ol/interaction/dragpaninteraction.js | 4 +++- src/ol/interaction/touchpaninteraction.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) 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 {