Use requestRenderFrame API in interactions

This commit is contained in:
Tom Payne
2012-10-04 20:33:16 +02:00
parent 8c44dcf83a
commit 934c75bc8c
4 changed files with 7 additions and 0 deletions

View File

@@ -40,6 +40,7 @@ ol.interaction.DragPan.prototype.handleDrag = function(mapBrowserEvent) {
}
var newCenter = new ol.Coordinate(
this.startCenter.x + delta.x, this.startCenter.y + delta.y);
map.requestRenderFrame();
map.setCenter(newCenter);
};
@@ -50,6 +51,7 @@ ol.interaction.DragPan.prototype.handleDrag = function(mapBrowserEvent) {
ol.interaction.DragPan.prototype.handleDragStart = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
if (this.condition_(browserEvent)) {
mapBrowserEvent.map.requestRenderFrame();
return true;
} else {
return false;

View File

@@ -51,6 +51,7 @@ ol.interaction.DragRotateAndZoom.prototype.handleDrag =
size.height / 2 - browserEvent.offsetY);
var theta = Math.atan2(delta.y, delta.x);
// FIXME this should use map.withFrozenRendering but an assertion fails :-(
map.requestRenderFrame();
map.rotate(this.startRotation_, -theta);
var resolution = this.startRatio_ * delta.magnitude();
map.zoomToResolution(resolution);
@@ -73,6 +74,7 @@ ol.interaction.DragRotateAndZoom.prototype.handleDragStart =
var theta = Math.atan2(delta.y, delta.x);
this.startRotation_ = (map.getRotation() || 0) + theta;
this.startRatio_ = resolution / delta.magnitude();
map.requestRenderFrame();
return true;
} else {
return false;

View File

@@ -42,6 +42,7 @@ ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) {
var theta = Math.atan2(
size.height / 2 - offset.y,
offset.x - size.width / 2);
map.requestRenderFrame();
map.rotate(this.startRotation_, -theta);
};
@@ -55,6 +56,7 @@ ol.interaction.DragRotate.prototype.handleDragStart =
var map = mapBrowserEvent.map;
if (browserEvent.isMouseActionButton() && this.condition_(browserEvent) &&
map.canRotate()) {
map.requestRenderFrame();
var size = map.getSize();
var offset = mapBrowserEvent.getPixel();
var theta = Math.atan2(

View File

@@ -36,6 +36,7 @@ ol.interaction.MouseWheelZoom.prototype.handleMapBrowserEvent =
goog.asserts.assert(mouseWheelEvent instanceof goog.events.MouseWheelEvent);
var anchor = mapBrowserEvent.getCoordinate();
var delta = mouseWheelEvent.deltaY < 0 ? this.delta_ : -this.delta_;
map.requestRenderFrame();
map.zoom(delta, anchor);
mapBrowserEvent.preventDefault();
mouseWheelEvent.preventDefault();