MapBrowserEvent#preventDefault() behaves the same as with native events
This commit is contained in:
@@ -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)
|
||||
) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -650,7 +650,7 @@ class Draw extends PointerInteraction {
|
||||
}
|
||||
|
||||
if (!pass && this.stopClick_) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
}
|
||||
return pass;
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user