Use originalEvent instead of browserEvent

This commit is contained in:
Tim Schaub
2016-02-02 09:17:31 -07:00
committed by Andreas Hocevar
parent c62e76ab67
commit e48ab95735
8 changed files with 109 additions and 129 deletions

View File

@@ -28,7 +28,7 @@ In the source file (`src/ol/MapBrowserEvent.js`), the class needs to implement t
* @constructor * @constructor
* @implements {oli.MapBrowserEvent} * @implements {oli.MapBrowserEvent}
*/ */
ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) { ol.MapBrowserEvent = function(type, map, originalEvent, opt_frameState) {
// ... // ...

View File

@@ -154,21 +154,21 @@ ol.control.MousePosition.prototype.getProjection = function() {
/** /**
* @param {Event} browserEvent Browser event. * @param {Event} event Browser event.
* @protected * @protected
*/ */
ol.control.MousePosition.prototype.handleMouseMove = function(browserEvent) { ol.control.MousePosition.prototype.handleMouseMove = function(event) {
var map = this.getMap(); var map = this.getMap();
this.lastMouseMovePixel_ = map.getEventPixel(browserEvent); this.lastMouseMovePixel_ = map.getEventPixel(event);
this.updateHTML_(this.lastMouseMovePixel_); this.updateHTML_(this.lastMouseMovePixel_);
}; };
/** /**
* @param {Event} browserEvent Browser event. * @param {Event} event Browser event.
* @protected * @protected
*/ */
ol.control.MousePosition.prototype.handleMouseOut = function(browserEvent) { ol.control.MousePosition.prototype.handleMouseOut = function(event) {
this.updateHTML_(null); this.updateHTML_(null);
this.lastMouseMovePixel_ = null; this.lastMouseMovePixel_ = null;
}; };

View File

@@ -214,10 +214,10 @@ ol.control.ZoomSlider.render = function(mapEvent) {
/** /**
* @param {Event} browserEvent The browser event to handle. * @param {Event} event The browser event to handle.
* @private * @private
*/ */
ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) { ol.control.ZoomSlider.prototype.handleContainerClick_ = function(event) {
var map = this.getMap(); var map = this.getMap();
var view = map.getView(); var view = map.getView();
var currentResolution = view.getResolution(); var currentResolution = view.getResolution();
@@ -229,8 +229,8 @@ ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) {
easing: ol.easing.easeOut easing: ol.easing.easeOut
})); }));
var relativePosition = this.getRelativePosition_( var relativePosition = this.getRelativePosition_(
browserEvent.offsetX - this.thumbSize_[0] / 2, event.offsetX - this.thumbSize_[0] / 2,
browserEvent.offsetY - this.thumbSize_[1] / 2); event.offsetY - this.thumbSize_[1] / 2);
var resolution = this.getResolutionForPosition_(relativePosition); var resolution = this.getResolutionForPosition_(relativePosition);
view.setResolution(view.constrainResolution(resolution)); view.setResolution(view.constrainResolution(resolution));
}; };
@@ -243,7 +243,7 @@ ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) {
*/ */
ol.control.ZoomSlider.prototype.handleDraggerStart_ = function(event) { ol.control.ZoomSlider.prototype.handleDraggerStart_ = function(event) {
if (!this.dragging_ && if (!this.dragging_ &&
event.browserEvent.target === this.element.firstElementChild) { event.originalEvent.target === this.element.firstElementChild) {
this.getMap().getView().setHint(ol.ViewHint.INTERACTING, 1); this.getMap().getView().setHint(ol.ViewHint.INTERACTING, 1);
this.previousX_ = event.clientX; this.previousX_ = event.clientX;
this.previousY_ = event.clientY; this.previousY_ = event.clientY;

View File

@@ -108,11 +108,10 @@ ol.DeviceOrientation.prototype.disposeInternal = function() {
/** /**
* @private * @private
* @param {Event} browserEvent Event. * @param {Event} originalEvent Event.
*/ */
ol.DeviceOrientation.prototype.orientationChange_ = function(browserEvent) { ol.DeviceOrientation.prototype.orientationChange_ = function(originalEvent) {
var event = /** @type {DeviceOrientationEvent} */ var event = /** @type {DeviceOrientationEvent} */ (originalEvent);
(browserEvent);
if (event.alpha !== null) { if (event.alpha !== null) {
var alpha = ol.math.toRadians(event.alpha); var alpha = ol.math.toRadians(event.alpha);
this.set(ol.DeviceOrientationProperty.ALPHA, alpha); this.set(ol.DeviceOrientationProperty.ALPHA, alpha);

View File

@@ -26,11 +26,11 @@ ol.events.ConditionType;
* @api stable * @api stable
*/ */
ol.events.condition.altKeyOnly = function(mapBrowserEvent) { ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent; var originalEvent = mapBrowserEvent.originalEvent;
return ( return (
browserEvent.altKey && originalEvent.altKey &&
!(browserEvent.metaKey || browserEvent.ctrlKey) && !(originalEvent.metaKey || originalEvent.ctrlKey) &&
!browserEvent.shiftKey); !originalEvent.shiftKey);
}; };
@@ -43,11 +43,11 @@ ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
* @api stable * @api stable
*/ */
ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) { ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent; var originalEvent = mapBrowserEvent.originalEvent;
return ( return (
browserEvent.altKey && originalEvent.altKey &&
!(browserEvent.metaKey || browserEvent.ctrlKey) && !(originalEvent.metaKey || originalEvent.ctrlKey) &&
browserEvent.shiftKey); originalEvent.shiftKey);
}; };
@@ -84,9 +84,9 @@ ol.events.condition.click = function(mapBrowserEvent) {
* @return {boolean} The result. * @return {boolean} The result.
*/ */
ol.events.condition.mouseActionButton = function(mapBrowserEvent) { ol.events.condition.mouseActionButton = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent; var originalEvent = mapBrowserEvent.originalEvent;
return browserEvent.button == 0 && return originalEvent.button == 0 &&
!(goog.userAgent.WEBKIT && ol.has.MAC && browserEvent.ctrlKey); !(goog.userAgent.WEBKIT && ol.has.MAC && originalEvent.ctrlKey);
}; };
@@ -147,11 +147,11 @@ ol.events.condition.doubleClick = function(mapBrowserEvent) {
* @api stable * @api stable
*/ */
ol.events.condition.noModifierKeys = function(mapBrowserEvent) { ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent; var originalEvent = mapBrowserEvent.originalEvent;
return ( return (
!browserEvent.altKey && !originalEvent.altKey &&
!(browserEvent.metaKey || browserEvent.ctrlKey) && !(originalEvent.metaKey || originalEvent.ctrlKey) &&
!browserEvent.shiftKey); !originalEvent.shiftKey);
}; };
@@ -165,11 +165,11 @@ ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
* @api stable * @api stable
*/ */
ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) { ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent; var originalEvent = mapBrowserEvent.originalEvent;
return ( return (
!browserEvent.altKey && !originalEvent.altKey &&
(ol.has.MAC ? browserEvent.metaKey : browserEvent.ctrlKey) && (ol.has.MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&
!browserEvent.shiftKey); !originalEvent.shiftKey);
}; };
@@ -182,11 +182,11 @@ ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
* @api stable * @api stable
*/ */
ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) { ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent; var originalEvent = mapBrowserEvent.originalEvent;
return ( return (
!browserEvent.altKey && !originalEvent.altKey &&
!(browserEvent.metaKey || browserEvent.ctrlKey) && !(originalEvent.metaKey || originalEvent.ctrlKey) &&
browserEvent.shiftKey); originalEvent.shiftKey);
}; };

View File

@@ -106,7 +106,7 @@ ol.MapBrowserEvent.prototype.stopPropagation = function() {
ol.MapBrowserPointerEvent = function(type, map, pointerEvent, opt_dragging, ol.MapBrowserPointerEvent = function(type, map, pointerEvent, opt_dragging,
opt_frameState) { opt_frameState) {
goog.base(this, type, map, pointerEvent.browserEvent, opt_dragging, goog.base(this, type, map, pointerEvent.originalEvent, opt_dragging,
opt_frameState); opt_frameState);
/** /**

View File

@@ -44,18 +44,18 @@ goog.require('ol.events.Event');
* @constructor * @constructor
* @extends {ol.events.Event} * @extends {ol.events.Event}
* @param {string} type The type of the event to create. * @param {string} type The type of the event to create.
* @param {Event} browserEvent The event. * @param {Event} originalEvent The event.
* @param {Object.<string, ?>=} opt_eventDict An optional dictionary of * @param {Object.<string, ?>=} opt_eventDict An optional dictionary of
* initial event properties. * initial event properties.
*/ */
ol.pointer.PointerEvent = function(type, browserEvent, opt_eventDict) { ol.pointer.PointerEvent = function(type, originalEvent, opt_eventDict) {
goog.base(this, type); goog.base(this, type);
/** /**
* @const * @const
* @type {Event} * @type {Event}
*/ */
this.browserEvent = browserEvent; this.originalEvent = originalEvent;
var eventDict = opt_eventDict ? opt_eventDict : {}; var eventDict = opt_eventDict ? opt_eventDict : {};
@@ -186,9 +186,9 @@ ol.pointer.PointerEvent = function(type, browserEvent, opt_eventDict) {
this.isPrimary = 'isPrimary' in eventDict ? eventDict['isPrimary'] : false; this.isPrimary = 'isPrimary' in eventDict ? eventDict['isPrimary'] : false;
// keep the semantics of preventDefault // keep the semantics of preventDefault
if (browserEvent.preventDefault) { if (originalEvent.preventDefault) {
this.preventDefault = function() { this.preventDefault = function() {
browserEvent.preventDefault(); originalEvent.preventDefault();
}; };
} }
}; };

View File

@@ -196,20 +196,17 @@ ol.pointer.PointerEventHandler.prototype.removeEvents_ = function(events) {
/** /**
* Returns a snapshot of inEvent, with writable properties. * Returns a snapshot of inEvent, with writable properties.
* *
* @param {Event} browserEvent Browser event. * @param {Event} event Browser event.
* @param {Event|Touch} inEvent An event that contains * @param {Event|Touch} inEvent An event that contains
* properties to copy. * properties to copy.
* @return {Object} An object containing shallow copies of * @return {Object} An object containing shallow copies of
* `inEvent`'s properties. * `inEvent`'s properties.
*/ */
ol.pointer.PointerEventHandler.prototype.cloneEvent = function(browserEvent, inEvent) { ol.pointer.PointerEventHandler.prototype.cloneEvent = function(event, inEvent) {
var eventCopy = {}, p; var eventCopy = {}, p;
for (var i = 0, ii = ol.pointer.CLONE_PROPS.length; i < ii; i++) { for (var i = 0, ii = ol.pointer.CLONE_PROPS.length; i < ii; i++) {
p = ol.pointer.CLONE_PROPS[i][0]; p = ol.pointer.CLONE_PROPS[i][0];
eventCopy[p] = eventCopy[p] = event[p] || inEvent[p] || ol.pointer.CLONE_PROPS[i][1];
browserEvent[p] ||
inEvent[p] ||
ol.pointer.CLONE_PROPS[i][1];
} }
return eventCopy; return eventCopy;
@@ -221,122 +218,110 @@ ol.pointer.PointerEventHandler.prototype.cloneEvent = function(browserEvent, inE
/** /**
* Triggers a 'pointerdown' event. * Triggers a 'pointerdown' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.down = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.down = function(data, event) {
this.fireEvent(ol.pointer.EventType.POINTERDOWN, this.fireEvent(ol.pointer.EventType.POINTERDOWN, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointermove' event. * Triggers a 'pointermove' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.move = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.move = function(data, event) {
this.fireEvent(ol.pointer.EventType.POINTERMOVE, this.fireEvent(ol.pointer.EventType.POINTERMOVE, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointerup' event. * Triggers a 'pointerup' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.up = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.up = function(data, event) {
this.fireEvent(ol.pointer.EventType.POINTERUP, this.fireEvent(ol.pointer.EventType.POINTERUP, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointerenter' event. * Triggers a 'pointerenter' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.enter = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.enter = function(data, event) {
pointerEventData.bubbles = false; data.bubbles = false;
this.fireEvent(ol.pointer.EventType.POINTERENTER, this.fireEvent(ol.pointer.EventType.POINTERENTER, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointerleave' event. * Triggers a 'pointerleave' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.leave = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.leave = function(data, event) {
pointerEventData.bubbles = false; data.bubbles = false;
this.fireEvent(ol.pointer.EventType.POINTERLEAVE, this.fireEvent(ol.pointer.EventType.POINTERLEAVE, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointerover' event. * Triggers a 'pointerover' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.over = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.over = function(data, event) {
pointerEventData.bubbles = true; data.bubbles = true;
this.fireEvent(ol.pointer.EventType.POINTEROVER, this.fireEvent(ol.pointer.EventType.POINTEROVER, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointerout' event. * Triggers a 'pointerout' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.out = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.out = function(data, event) {
pointerEventData.bubbles = true; data.bubbles = true;
this.fireEvent(ol.pointer.EventType.POINTEROUT, this.fireEvent(ol.pointer.EventType.POINTEROUT, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a 'pointercancel' event. * Triggers a 'pointercancel' event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.cancel = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.cancel = function(data, event) {
this.fireEvent(ol.pointer.EventType.POINTERCANCEL, this.fireEvent(ol.pointer.EventType.POINTERCANCEL, data, event);
pointerEventData, browserEvent);
}; };
/** /**
* Triggers a combination of 'pointerout' and 'pointerleave' events. * Triggers a combination of 'pointerout' and 'pointerleave' events.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.leaveOut = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.leaveOut = function(data, event) {
this.out(pointerEventData, browserEvent); this.out(data, event);
if (!this.contains_( if (!this.contains_(data.target, data.relatedTarget)) {
pointerEventData.target, this.leave(data, event);
pointerEventData.relatedTarget)) {
this.leave(pointerEventData, browserEvent);
} }
}; };
/** /**
* Triggers a combination of 'pointerover' and 'pointerevents' events. * Triggers a combination of 'pointerover' and 'pointerevents' events.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.enterOver = function(pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.enterOver = function(data, event) {
this.over(pointerEventData, browserEvent); this.over(data, event);
if (!this.contains_( if (!this.contains_(data.target, data.relatedTarget)) {
pointerEventData.target, this.enter(data, event);
pointerEventData.relatedTarget)) {
this.enter(pointerEventData, browserEvent);
} }
}; };
@@ -359,26 +344,26 @@ ol.pointer.PointerEventHandler.prototype.contains_ = function(container, contain
// EVENT CREATION AND TRACKING // EVENT CREATION AND TRACKING
/** /**
* Creates a new Event of type `inType`, based on the information in * Creates a new Event of type `inType`, based on the information in
* `pointerEventData`. * `data`.
* *
* @param {string} inType A string representing the type of event to create. * @param {string} inType A string representing the type of event to create.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
* @return {ol.pointer.PointerEvent} A PointerEvent of type `inType`. * @return {ol.pointer.PointerEvent} A PointerEvent of type `inType`.
*/ */
ol.pointer.PointerEventHandler.prototype.makeEvent = function(inType, pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.makeEvent = function(inType, data, event) {
return new ol.pointer.PointerEvent(inType, browserEvent, pointerEventData); return new ol.pointer.PointerEvent(inType, event, data);
}; };
/** /**
* Make and dispatch an event in one call. * Make and dispatch an event in one call.
* @param {string} inType A string representing the type of event. * @param {string} inType A string representing the type of event.
* @param {Object} pointerEventData Pointer event data. * @param {Object} data Pointer event data.
* @param {Event} browserEvent The event. * @param {Event} event The event.
*/ */
ol.pointer.PointerEventHandler.prototype.fireEvent = function(inType, pointerEventData, browserEvent) { ol.pointer.PointerEventHandler.prototype.fireEvent = function(inType, data, event) {
var e = this.makeEvent(inType, pointerEventData, browserEvent); var e = this.makeEvent(inType, data, event);
this.dispatchEvent(e); this.dispatchEvent(e);
}; };
@@ -386,11 +371,10 @@ ol.pointer.PointerEventHandler.prototype.fireEvent = function(inType, pointerEve
/** /**
* Creates a pointer event from a native pointer event * Creates a pointer event from a native pointer event
* and dispatches this event. * and dispatches this event.
* @param {Event} nativeEvent A platform event with a target. * @param {Event} event A platform event with a target.
*/ */
ol.pointer.PointerEventHandler.prototype.fireNativeEvent = function(nativeEvent) { ol.pointer.PointerEventHandler.prototype.fireNativeEvent = function(event) {
var e = this.makeEvent(nativeEvent.type, nativeEvent, var e = this.makeEvent(event.type, event, event);
nativeEvent);
this.dispatchEvent(e); this.dispatchEvent(e);
}; };
@@ -399,15 +383,12 @@ ol.pointer.PointerEventHandler.prototype.fireNativeEvent = function(nativeEvent)
* Wrap a native mouse event into a pointer event. * Wrap a native mouse event into a pointer event.
* This proxy method is required for the legacy IE support. * This proxy method is required for the legacy IE support.
* @param {string} eventType The pointer event type. * @param {string} eventType The pointer event type.
* @param {Event} browserEvent The event. * @param {Event} event The event.
* @return {ol.pointer.PointerEvent} The wrapped event. * @return {ol.pointer.PointerEvent} The wrapped event.
*/ */
ol.pointer.PointerEventHandler.prototype.wrapMouseEvent = function(eventType, browserEvent) { ol.pointer.PointerEventHandler.prototype.wrapMouseEvent = function(eventType, event) {
var pointerEvent = this.makeEvent( var pointerEvent = this.makeEvent(
eventType, eventType, ol.pointer.MouseSource.prepareEvent(event, this), event);
ol.pointer.MouseSource.prepareEvent(browserEvent, this),
browserEvent
);
return pointerEvent; return pointerEvent;
}; };