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);
};