diff --git a/src/ol/MapBrowserEventHandler.js b/src/ol/MapBrowserEventHandler.js index 2005c2ca07..754ff0367a 100644 --- a/src/ol/MapBrowserEventHandler.js +++ b/src/ol/MapBrowserEventHandler.js @@ -204,7 +204,7 @@ class MapBrowserEventHandler extends Target { // event.stopPropagation() or event.preventDefault(). if ( this.emulateClicks_ && - !newEvent.propagationStopped && + !newEvent.defaultPrevented && !this.dragging_ && this.isMouseActionButton_(pointerEvent) ) { diff --git a/src/ol/events/Event.js b/src/ol/events/Event.js index 69ce76ba1d..3b16d6636e 100644 --- a/src/ol/events/Event.js +++ b/src/ol/events/Event.js @@ -22,6 +22,11 @@ class BaseEvent { */ this.propagationStopped; + /** + * @type {boolean} + */ + this.defaultPrevented; + /** * The event type. * @type {string} @@ -38,11 +43,12 @@ class BaseEvent { } /** - * Stop event propagation. + * Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events + * will be fired. * @api */ preventDefault() { - this.propagationStopped = true; + this.defaultPrevented = true; } /** diff --git a/src/ol/interaction/Draw.js b/src/ol/interaction/Draw.js index 0409beb7af..960945320f 100644 --- a/src/ol/interaction/Draw.js +++ b/src/ol/interaction/Draw.js @@ -650,7 +650,7 @@ class Draw extends PointerInteraction { } if (!pass && this.stopClick_) { - event.stopPropagation(); + event.preventDefault(); } return pass; } diff --git a/test/spec/ol/events/event.test.js b/test/spec/ol/events/event.test.js index b67c062dc6..9ca7100842 100644 --- a/test/spec/ol/events/event.test.js +++ b/test/spec/ol/events/event.test.js @@ -16,10 +16,10 @@ describe('ol.events.Event', function () { }); describe('#preventDefault', function () { - it('sets the propagationStopped flag', function () { + it('sets the defaultPrevented flag', function () { const event = new Event('foo'); event.preventDefault(); - expect(event.propagationStopped).to.be(true); + expect(event.defaultPrevented).to.be(true); }); it('does the same as #stopPropagation', function () { const event = new Event('foo'); diff --git a/test/spec/ol/events/eventtarget.test.js b/test/spec/ol/events/eventtarget.test.js index 90bf63ce59..7223d4158c 100644 --- a/test/spec/ol/events/eventtarget.test.js +++ b/test/spec/ol/events/eventtarget.test.js @@ -105,10 +105,10 @@ describe('ol.events.EventTarget', function () { eventTarget.dispatchEvent('foo'); expect(called).to.eql([1, 2]); }); - it('stops propagation when listeners call preventDefault()', function () { + it('stops propagation when listeners call stopPropagation()', function () { eventTarget.addEventListener('foo', function (evt) { spy2(); - evt.preventDefault(); + evt.stopPropagation(); }); eventTarget.addEventListener('foo', spy1); eventTarget.dispatchEvent('foo');