Use drag-pan default condition with onFocusOnly

This commit is contained in:
Andreas Hocevar
2020-06-09 16:22:53 +02:00
parent 8110ff3200
commit aa5de5db60
3 changed files with 15 additions and 7 deletions

View File

@@ -3,7 +3,9 @@
*/
import Collection from './Collection.js';
import DoubleClickZoom from './interaction/DoubleClickZoom.js';
import DragPan from './interaction/DragPan.js';
import DragPan, {
defaultCondition as dragPanDefaultCondition,
} from './interaction/DragPan.js';
import DragRotate from './interaction/DragRotate.js';
import DragZoom from './interaction/DragZoom.js';
import KeyboardPan from './interaction/KeyboardPan.js';
@@ -112,7 +114,11 @@ export function defaults(opt_options) {
if (dragPan) {
interactions.push(
new DragPan({
condition: options.onFocusOnly ? focusWithTabindex : undefined,
condition: options.onFocusOnly
? function (event) {
return focusWithTabindex(event) && dragPanDefaultCondition(event);
}
: undefined,
kinetic: kinetic,
})
);

View File

@@ -179,7 +179,7 @@ class DragPan extends PointerInteraction {
* @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Browser event.
* @return {boolean} Combined condition result.
*/
function defaultCondition(mapBrowserEvent) {
export function defaultCondition(mapBrowserEvent) {
return noModifierKeys(mapBrowserEvent) && primaryAction(mapBrowserEvent);
}