From 5bb947d9ed81f0b1cb241169ca72018690b90896 Mon Sep 17 00:00:00 2001 From: Nico Rehwaldt Date: Tue, 22 Nov 2022 18:25:55 +0100 Subject: [PATCH] fix(dragging): correct listening for to cancel --- lib/features/dragging/Dragging.js | 2 +- test/spec/features/dragging/DraggingSpec.js | 26 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/features/dragging/Dragging.js b/lib/features/dragging/Dragging.js index 6947cd114..7154b9583 100644 --- a/lib/features/dragging/Dragging.js +++ b/lib/features/dragging/Dragging.js @@ -284,7 +284,7 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) { function checkCancel(event) { - if (isKey('Escape')) { + if (isKey('Escape', event)) { preventDefault(event); cancel(); diff --git a/test/spec/features/dragging/DraggingSpec.js b/test/spec/features/dragging/DraggingSpec.js index 2145e46a9..b704b21b4 100644 --- a/test/spec/features/dragging/DraggingSpec.js +++ b/test/spec/features/dragging/DraggingSpec.js @@ -12,6 +12,8 @@ import zoomScrollModule from 'lib/navigation/zoomscroll'; import createModule from 'lib/features/create'; import modelingModule from 'lib/features/modeling'; +import { createKeyEvent } from 'test/util/KeyEvents'; + import { classes as svgClasses } from 'tiny-svg'; @@ -428,6 +430,30 @@ describe('features/dragging - Dragging', function() { }); +describe('features/dragging - keyboard integration', function() { + + beforeEach(bootstrapDiagram({ + modules: [ + dragModule + ] + })); + + + it('should cancel on ', inject(function(dragging) { + + // given + dragging.init(canvasEvent({ x: 10, y: 10 }), 'foo'); + + // when + document.dispatchEvent(createKeyEvent('Escape', { type: 'keyup' })); + + // then + expect(dragging.context()).not.to.exist; + })); + +}); + + describe('features/dragging - error Handling', function() { beforeEach(bootstrapDiagram({