Revert "Allow for using a different set of default behaviors."

This reverts commit 3cc069186c.
This commit is contained in:
Éric Lemoine
2012-07-13 15:38:06 +02:00
parent f34aa03109
commit 2b9df6442b
8 changed files with 40 additions and 141 deletions

View File

@@ -95,19 +95,25 @@ ol.handler.Drag.prototype.handleDragStart = function(e) {
ol.handler.Drag.prototype.handleDrag = function(e) {
this.states_.dragged = true;
var newE = new ol.events.MapEvent(ol.events.MapEventType.DRAG, e);
newE.deltaX = e.clientX - this.prevX_;
newE.deltaY = e.clientY - this.prevY_;
newE.delementaX = e.clientX - this.prevX_;
newE.delementaY = e.clientY - this.prevY_;
this.prevX_ = e.clientX;
this.prevY_ = e.clientY;
var rt = goog.events.dispatchEvent(this.map_, newE);
if (rt) {
var defaultControl = this.map_.getDefaultControl();
if (defaultControl) {
defaultControl.defaultDrag(newE);
}
this.defaultDrag(newE);
}
};
/**
* @param {ol.events.MapEvent} e
*/
ol.handler.Drag.prototype.defaultDrag = function(e) {
var delementaX = /** @type {number} */ e.delementaX;
var delementaY = /** @type {number} */ e.delementaY;
this.map_.moveByViewportPx(delementaX, delementaY);
};
/**
* @param {goog.fx.DragEvent} e
*/

View File

@@ -4,7 +4,7 @@
* Type definitions and base class for map event handlers that share states,
* listen for events on a map related dom element (usually the map's viewport),
* dispatch events to an ol.Map instance, and optionally perform default
* actions on the map's default control.
* actions on an ol.Map instance.
*/
goog.provide('ol.handler.states');

View File

@@ -47,9 +47,28 @@ ol.handler.MouseWheel.prototype.handleMouseWheel = function(e) {
var newE = new ol.events.MapEvent(ol.events.MapEventType.MOUSEWHEEL, e);
var rt = goog.events.dispatchEvent(this.map_, newE);
if (rt) {
var defaultControl = this.map_.getDefaultControl();
if (defaultControl) {
defaultControl.defaultMouseWheel(newE);
}
this.defaultMouseWheel(e);
}
};
};
/**
* @param {goog.events.MouseWheelEvent} e
*/
ol.handler.MouseWheel.prototype.defaultMouseWheel = function(e) {
var me = this;
if (e.deltaY === 0 || me.zoomBlocked_) {
return;
}
me.zoomBlocked_ = window.setTimeout(function() {
me.zoomBlocked_ = null;
}, 200);
var map = me.map_,
step = e.deltaY / Math.abs(e.deltaY);
map.setZoom(map.getZoom() - step,
goog.style.getRelativePosition(e, this.element_));
// We don't want the page to scroll.
// (MouseWheelEvent is a BrowserEvent)
e.preventDefault();
};