Remove goog.events.MouseWheelEvent and goog.events.MouseWheelHandler
This commit is contained in:
@@ -15,3 +15,13 @@
|
|||||||
* @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property
|
* @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property
|
||||||
*/
|
*/
|
||||||
CSSProperties.prototype.touchAction;
|
CSSProperties.prototype.touchAction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {number}
|
||||||
|
*/
|
||||||
|
WheelEvent.DOM_DELTA_LINE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {number}
|
||||||
|
*/
|
||||||
|
WheelEvent.DOM_DELTA_PIXEL;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ goog.provide('ol.events.KeyCode');
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @enum {string}
|
* @enum {string}
|
||||||
|
* @const
|
||||||
*/
|
*/
|
||||||
ol.events.EventType = {
|
ol.events.EventType = {
|
||||||
/**
|
/**
|
||||||
@@ -25,14 +26,17 @@ ol.events.EventType = {
|
|||||||
MOUSEDOWN: 'mousedown',
|
MOUSEDOWN: 'mousedown',
|
||||||
MOUSEMOVE: 'mousemove',
|
MOUSEMOVE: 'mousemove',
|
||||||
MOUSEOUT: 'mouseout',
|
MOUSEOUT: 'mouseout',
|
||||||
|
MOUSEWHEEL: 'mousewheel',
|
||||||
MSPOINTERDOWN: 'mspointerdown',
|
MSPOINTERDOWN: 'mspointerdown',
|
||||||
RESIZE: 'resize',
|
RESIZE: 'resize',
|
||||||
TOUCHSTART: 'touchstart'
|
TOUCHSTART: 'touchstart',
|
||||||
|
WHEEL: 'wheel'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @enum {number}
|
* @enum {number}
|
||||||
|
* @const
|
||||||
*/
|
*/
|
||||||
ol.events.KeyCode = {
|
ol.events.KeyCode = {
|
||||||
LEFT: 37,
|
LEFT: 37,
|
||||||
|
|||||||
@@ -5,6 +5,22 @@ goog.require('ol.dom');
|
|||||||
goog.require('ol.webgl');
|
goog.require('ol.webgl');
|
||||||
|
|
||||||
|
|
||||||
|
var ua = typeof navigator !== 'undefined' ?
|
||||||
|
navigator.userAgent.toLowerCase() : '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User agent string says we are dealing with Firefox as browser.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
ol.has.FIREFOX = ua.indexOf('firefox') !== -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User agent string says we are dealing with Safari as browser.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
ol.has.SAFARI = ua.indexOf('safari') !== -1 && ua.indexOf('chrom') === -1;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ratio between physical pixels and device-independent pixels
|
* The ratio between physical pixels and device-independent pixels
|
||||||
* (dips) on the device (`window.devicePixelRatio`).
|
* (dips) on the device (`window.devicePixelRatio`).
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
goog.provide('ol.interaction.MouseWheelZoom');
|
goog.provide('ol.interaction.MouseWheelZoom');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.MouseWheelEvent');
|
|
||||||
goog.require('goog.events.MouseWheelHandler.EventType');
|
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
goog.require('ol.math');
|
goog.require('ol.math');
|
||||||
|
|
||||||
@@ -76,18 +75,36 @@ goog.inherits(ol.interaction.MouseWheelZoom, ol.interaction.Interaction);
|
|||||||
*/
|
*/
|
||||||
ol.interaction.MouseWheelZoom.handleEvent = function(mapBrowserEvent) {
|
ol.interaction.MouseWheelZoom.handleEvent = function(mapBrowserEvent) {
|
||||||
var stopEvent = false;
|
var stopEvent = false;
|
||||||
if (mapBrowserEvent.type ==
|
if (mapBrowserEvent.type == ol.events.EventType.WHEEL ||
|
||||||
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL) {
|
mapBrowserEvent.type == ol.events.EventType.MOUSEWHEEL) {
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
var mouseWheelEvent = mapBrowserEvent.originalEvent;
|
var wheelEvent = /** @type {WheelEvent} */ (mapBrowserEvent.originalEvent);
|
||||||
goog.asserts.assertInstanceof(mouseWheelEvent, goog.events.MouseWheelEvent,
|
|
||||||
'mouseWheelEvent should be of type MouseWheelEvent');
|
|
||||||
|
|
||||||
if (this.useAnchor_) {
|
if (this.useAnchor_) {
|
||||||
this.lastAnchor_ = mapBrowserEvent.coordinate;
|
this.lastAnchor_ = mapBrowserEvent.coordinate;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.delta_ += mouseWheelEvent.deltaY;
|
// Delta normalisation inspired by
|
||||||
|
// https://github.com/mapbox/mapbox-gl-js/blob/001c7b9/js/ui/handler/scroll_zoom.js
|
||||||
|
//TODO There's more good stuff in there for inspiration to improve this interaction.
|
||||||
|
var delta;
|
||||||
|
if (mapBrowserEvent.type == ol.events.EventType.WHEEL) {
|
||||||
|
delta = wheelEvent.deltaY;
|
||||||
|
if (ol.has.FIREFOX &&
|
||||||
|
wheelEvent.deltaMode === goog.global.WheelEvent.DOM_DELTA_PIXEL) {
|
||||||
|
delta /= ol.has.DEVICE_PIXEL_RATIO;
|
||||||
|
}
|
||||||
|
if (wheelEvent.deltaMode === goog.global.WheelEvent.DOM_DELTA_LINE) {
|
||||||
|
delta *= 40;
|
||||||
|
}
|
||||||
|
} else if (mapBrowserEvent.type == ol.events.EventType.MOUSEWHEEL) {
|
||||||
|
delta = -wheelEvent.wheelDeltaY;
|
||||||
|
if (ol.has.SAFARI) {
|
||||||
|
delta /= 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.delta_ += delta;
|
||||||
|
|
||||||
if (this.startTime_ === undefined) {
|
if (this.startTime_ === undefined) {
|
||||||
this.startTime_ = Date.now();
|
this.startTime_ = Date.now();
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ goog.require('goog.debug.Console');
|
|||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.ViewportSizeMonitor');
|
goog.require('goog.dom.ViewportSizeMonitor');
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.events.MouseWheelHandler');
|
|
||||||
goog.require('goog.events.MouseWheelHandler.EventType');
|
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.log');
|
goog.require('goog.log');
|
||||||
goog.require('goog.log.Level');
|
goog.require('goog.log.Level');
|
||||||
@@ -311,11 +309,10 @@ ol.Map = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.keyHandlerKey_;
|
this.keyHandlerKey_;
|
||||||
|
|
||||||
var mouseWheelHandler = new goog.events.MouseWheelHandler(this.viewport_);
|
ol.events.listen(this.viewport_, ol.events.EventType.WHEEL,
|
||||||
ol.events.listen(mouseWheelHandler,
|
this.handleBrowserEvent, false, this);
|
||||||
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL,
|
ol.events.listen(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
||||||
this.handleBrowserEvent, false, this);
|
this.handleBrowserEvent, false, this);
|
||||||
this.registerDisposable(mouseWheelHandler);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {ol.Collection.<ol.control.Control>}
|
* @type {ol.Collection.<ol.control.Control>}
|
||||||
@@ -577,6 +574,14 @@ ol.Map.prototype.removePreRenderFunction = function(preRenderFunction) {
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.disposeInternal = function() {
|
ol.Map.prototype.disposeInternal = function() {
|
||||||
|
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
|
||||||
|
this.handleBrowserEvent, false, this);
|
||||||
|
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
||||||
|
this.handleBrowserEvent, false, this);
|
||||||
|
if (this.handleResize_ !== undefined) {
|
||||||
|
goog.global.removeEventListener(ol.events.EventType.RESIZE,
|
||||||
|
this.handleResize_, false, this);
|
||||||
|
}
|
||||||
goog.dom.removeNode(this.viewport_);
|
goog.dom.removeNode(this.viewport_);
|
||||||
goog.base(this, 'disposeInternal');
|
goog.base(this, 'disposeInternal');
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user