From e60dc93e0e992ab93e357dba1824154cb99edee6 Mon Sep 17 00:00:00 2001 From: TigerShark Date: Wed, 23 Oct 2019 17:30:56 -0300 Subject: [PATCH 1/2] Make ol/interaction/Select#handleEvent return always true. Previously it was returning true only if the event was a pointerMove which prevented multiple Select objects with other event types from working. --- examples/select-features.js | 6 ++++-- src/ol/events/condition.js | 13 ------------- src/ol/interaction/Select.js | 4 ++-- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/examples/select-features.js b/examples/select-features.js index 0303c58896..de806e572f 100644 --- a/examples/select-features.js +++ b/examples/select-features.js @@ -1,6 +1,6 @@ import Map from '../src/ol/Map.js'; import View from '../src/ol/View.js'; -import {click, pointerMove, altKeyOnly} from '../src/ol/events/condition.js'; +import {click, altKeyOnly} from '../src/ol/events/condition.js'; import GeoJSON from '../src/ol/format/GeoJSON.js'; import Select from '../src/ol/interaction/Select.js'; import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js'; @@ -39,7 +39,9 @@ const selectClick = new Select({ // select interaction working on "pointermove" const selectPointerMove = new Select({ - condition: pointerMove + condition: function(mapBrowserEvent) { + return mapBrowserEvent.type == 'pointermove'; + } }); const selectAltClick = new Select({ diff --git a/src/ol/events/condition.js b/src/ol/events/condition.js index 12e20e9d39..132d1eb9f8 100644 --- a/src/ol/events/condition.js +++ b/src/ol/events/condition.js @@ -110,19 +110,6 @@ export const mouseActionButton = function(mapBrowserEvent) { export const never = FALSE; -/** - * Return `true` if the browser event is a `pointermove` event, `false` - * otherwise. - * - * @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Map browser event. - * @return {boolean} True if the browser event is a `pointermove` event. - * @api - */ -export const pointerMove = function(mapBrowserEvent) { - return mapBrowserEvent.type == 'pointermove'; -}; - - /** * Return `true` if the event is a map `singleclick` event, `false` otherwise. * diff --git a/src/ol/interaction/Select.js b/src/ol/interaction/Select.js index ad64ac4a0f..d838bf83c8 100644 --- a/src/ol/interaction/Select.js +++ b/src/ol/interaction/Select.js @@ -5,7 +5,7 @@ import {getUid} from '../util.js'; import CollectionEventType from '../CollectionEventType.js'; import {extend, includes} from '../array.js'; import Event from '../events/Event.js'; -import {singleClick, never, shiftKeyOnly, pointerMove} from '../events/condition.js'; +import {singleClick, never, shiftKeyOnly} from '../events/condition.js'; import {TRUE} from '../functions.js'; import GeometryType from '../geom/GeometryType.js'; import Interaction from './Interaction.js'; @@ -468,7 +468,7 @@ function handleEvent(mapBrowserEvent) { new SelectEvent(SelectEventType.SELECT, selected, deselected, mapBrowserEvent)); } - return pointerMove(mapBrowserEvent); + return true; } From 4f0431edd53ed4ce82bb32c5752cd306f4e58c41 Mon Sep 17 00:00:00 2001 From: TigerShark Date: Sun, 27 Oct 2019 11:45:53 -0300 Subject: [PATCH 2/2] Restore pointerMove in condition.js and example. Wrongly removed on previous commit as pointed by @ahocevar. --- examples/select-features.js | 6 ++---- src/ol/events/condition.js | 13 +++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/examples/select-features.js b/examples/select-features.js index de806e572f..0303c58896 100644 --- a/examples/select-features.js +++ b/examples/select-features.js @@ -1,6 +1,6 @@ import Map from '../src/ol/Map.js'; import View from '../src/ol/View.js'; -import {click, altKeyOnly} from '../src/ol/events/condition.js'; +import {click, pointerMove, altKeyOnly} from '../src/ol/events/condition.js'; import GeoJSON from '../src/ol/format/GeoJSON.js'; import Select from '../src/ol/interaction/Select.js'; import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js'; @@ -39,9 +39,7 @@ const selectClick = new Select({ // select interaction working on "pointermove" const selectPointerMove = new Select({ - condition: function(mapBrowserEvent) { - return mapBrowserEvent.type == 'pointermove'; - } + condition: pointerMove }); const selectAltClick = new Select({ diff --git a/src/ol/events/condition.js b/src/ol/events/condition.js index 132d1eb9f8..12e20e9d39 100644 --- a/src/ol/events/condition.js +++ b/src/ol/events/condition.js @@ -110,6 +110,19 @@ export const mouseActionButton = function(mapBrowserEvent) { export const never = FALSE; +/** + * Return `true` if the browser event is a `pointermove` event, `false` + * otherwise. + * + * @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Map browser event. + * @return {boolean} True if the browser event is a `pointermove` event. + * @api + */ +export const pointerMove = function(mapBrowserEvent) { + return mapBrowserEvent.type == 'pointermove'; +}; + + /** * Return `true` if the event is a map `singleclick` event, `false` otherwise. *