diff --git a/externs/oli.js b/externs/oli.js index fb2b7f470b..0f0acb4896 100644 --- a/externs/oli.js +++ b/externs/oli.js @@ -120,21 +120,27 @@ oli.MapEvent.prototype.frameState; /** * @interface */ - oli.SelectEvent = function() {}; +oli.SelectEvent = function() {}; - /** - * @type {Array.} - */ +/** + * @type {Array.} + */ oli.SelectEvent.prototype.deselected; - /** - * @type {Array.} - */ +/** + * @type {Array.} + */ oli.SelectEvent.prototype.selected; +/** + * @type {ol.MapBrowserEvent} + */ +oli.SelectEvent.prototype.mapBrowserEvent; + + /** * @type {Object} diff --git a/src/ol/interaction/selectinteraction.js b/src/ol/interaction/selectinteraction.js index 161eff39ae..58388f0402 100644 --- a/src/ol/interaction/selectinteraction.js +++ b/src/ol/interaction/selectinteraction.js @@ -46,11 +46,13 @@ ol.interaction.SelectFilterFunction; * @param {string} type The event type. * @param {Array.} selected Selected features. * @param {Array.} deselected Deselected features. + * @param {ol.MapBrowserEvent} mapBrowserEvent Associated + * {@link ol.MapBrowserEvent}. * @implements {oli.SelectEvent} * @extends {goog.events.Event} * @constructor */ -ol.SelectEvent = function(type, selected, deselected) { +ol.SelectEvent = function(type, selected, deselected, mapBrowserEvent) { goog.base(this, type); /** @@ -66,6 +68,13 @@ ol.SelectEvent = function(type, selected, deselected) { * @api */ this.deselected = deselected; + + /** + * Associated {@link ol.MapBrowserEvent}. + * @type {ol.MapBrowserEvent} + * @api + */ + this.mapBrowserEvent = mapBrowserEvent; }; goog.inherits(ol.SelectEvent, goog.events.Event); @@ -266,7 +275,8 @@ ol.interaction.Select.handleEvent = function(mapBrowserEvent) { } if (change) { this.dispatchEvent( - new ol.SelectEvent(ol.SelectEventType.SELECT, selected, deselected)); + new ol.SelectEvent(ol.SelectEventType.SELECT, selected, deselected, + mapBrowserEvent)); } return ol.events.condition.pointerMove(mapBrowserEvent); };