From ec811bfa1f2a42a406f44d154d0d6b74a5b2feb9 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 22 May 2019 15:21:17 +0200 Subject: [PATCH] Add primaryAction condition to DragPan interaction --- src/ol/interaction/DragPan.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ol/interaction/DragPan.js b/src/ol/interaction/DragPan.js index a1bbba97b9..31a15087c1 100644 --- a/src/ol/interaction/DragPan.js +++ b/src/ol/interaction/DragPan.js @@ -3,7 +3,7 @@ */ import {scale as scaleCoordinate, rotate as rotateCoordinate} from '../coordinate.js'; import {easeOut} from '../easing.js'; -import {noModifierKeys} from '../events/condition.js'; +import {noModifierKeys, primaryAction} from '../events/condition.js'; import {FALSE} from '../functions.js'; import PointerInteraction, {centroid as centroidFromPointers} from './Pointer.js'; @@ -12,7 +12,7 @@ import PointerInteraction, {centroid as centroidFromPointers} from './Pointer.js * @typedef {Object} Options * @property {import("../events/condition.js").Condition} [condition] A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean * to indicate whether that event should be handled. - * Default is {@link module:ol/events/condition~noModifierKeys}. + * Default is {@link module:ol/events/condition~noModifierKeys} and {@link module:ol/events/condition~primaryAction}. * @property {import("../Kinetic.js").default} [kinetic] Kinetic inertia to apply to the pan. */ @@ -59,7 +59,7 @@ class DragPan extends PointerInteraction { * @private * @type {import("../events/condition.js").Condition} */ - this.condition_ = options.condition ? options.condition : noModifierKeys; + this.condition_ = options.condition ? options.condition : defaultCondition; /** * @private @@ -166,4 +166,12 @@ class DragPan extends PointerInteraction { } } +/** + * @param {ol.MapBrowserEvent} mapBrowserEvent Browser event. + * @return {boolean} Combined condition result. + */ +function defaultCondition(mapBrowserEvent) { + return noModifierKeys(mapBrowserEvent) && primaryAction(mapBrowserEvent); +} + export default DragPan;