Replace mouseMove event condition by pointerMove

The original browser event was used to catch the mousemove event,
but in IE the 'pointermove' event is returned instead. So, instead
of using the original event, we use the map browser event, which
is always 'pointermove'.
This commit is contained in:
Alexandre Dubé
2015-02-27 12:14:13 -05:00
parent 6c4b30fa02
commit d1185da6b1
4 changed files with 17 additions and 17 deletions

View File

@@ -41,7 +41,7 @@
<option value="none" selected>None</option>
<option value="singleclick">Single-click</option>
<option value="click">Click</option>
<option value="mousemove">Hover</option>
<option value="pointermove">Hover</option>
</select>
</form>
<div id="docs">

View File

@@ -38,9 +38,9 @@ var selectClick = new ol.interaction.Select({
condition: ol.events.condition.click
});
// select interaction working on "mousemove"
var selectMouseMove = new ol.interaction.Select({
condition: ol.events.condition.mouseMove
// select interaction working on "pointermove"
var selectPointerMove = new ol.interaction.Select({
condition: ol.events.condition.pointerMove
});
var selectElement = document.getElementById('type');
@@ -54,8 +54,8 @@ var changeInteraction = function() {
select = selectSingleClick;
} else if (value == 'click') {
select = selectClick;
} else if (value == 'mousemove') {
select = selectMouseMove;
} else if (value == 'pointermove') {
select = selectPointerMove;
} else {
select = null;
}

View File

@@ -66,16 +66,6 @@ ol.events.condition.click = function(mapBrowserEvent) {
};
/**
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if the browser event is a `mousemove` event.
* @api
*/
ol.events.condition.mouseMove = function(mapBrowserEvent) {
return mapBrowserEvent.originalEvent.type == 'mousemove';
};
/**
* Always false.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
@@ -86,6 +76,16 @@ ol.events.condition.mouseMove = function(mapBrowserEvent) {
ol.events.condition.never = goog.functions.FALSE;
/**
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if the browser event is a `pointermove` event.
* @api
*/
ol.events.condition.pointerMove = function(mapBrowserEvent) {
return mapBrowserEvent.type == 'pointermove';
};
/**
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if the event is a map `singleclick` event.

View File

@@ -190,7 +190,7 @@ ol.interaction.Select.handleEvent = function(mapBrowserEvent) {
}
features.extend(selected);
}
return ol.events.condition.mouseMove(mapBrowserEvent);
return ol.events.condition.pointerMove(mapBrowserEvent);
};