Do not prevent default on pointermove

Instead, only prevent default on handled pointerdown events. This makes 
the `focus` condition work with interactions that involve dragging on 
touch devices.
This commit is contained in:
ahocevar
2018-07-31 08:33:15 +02:00
parent a56ca57ac6
commit c74b9c1d55
7 changed files with 58 additions and 5 deletions
+47
View File
@@ -0,0 +1,47 @@
import Map from '../../../../src/ol/Map.js';
import MapBrowserPointerEvent from '../../../../src/ol/MapBrowserPointerEvent.js';
import PointerEvent from '../../../../src/ol/pointer/PointerEvent.js';
import PointerInteraction from '../../../../src/ol/interaction/Pointer.js';
describe('ol.interaction.Pointer', function() {
describe('#handleEvent', function() {
let event;
let defaultPrevented;
beforeEach(function() {
const type = 'pointerdown';
const pointerEvent = new PointerEvent(type, {
type: type,
preventDefault: function() {
defaultPrevented = true;
}
});
event = new MapBrowserPointerEvent(type, new Map(), pointerEvent);
defaultPrevented = false;
});
it('prevents default on handled down event', function() {
const interaction = new PointerInteraction({
handleDownEvent: function() {
return true;
}
});
interaction.handleEvent(event);
expect(defaultPrevented).to.be(true);
});
it('does not prevent default on unhandled down event', function() {
const interaction = new PointerInteraction({
handleDownEvent: function() {
return false;
}
});
interaction.handleEvent(event);
expect(defaultPrevented).to.be(false);
});
});
});