Skip to content
This repository was archived by the owner on Jun 26, 2020. It is now read-only.

Commit 07cca83

Browse files
authored
Merge pull request #187 from ckeditor/t/186
Fix: The `delete` event will now stop the `keydown` event if it was set with the highest priority. Closes #186.
2 parents ee6af42 + 9ee5166 commit 07cca83

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/deleteobserver.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ export default class DeleteObserver extends Observer {
4949

5050
// Save the event object to check later if it was stopped or not.
5151
let event;
52-
document.once( 'delete', evt => ( event = evt ), { priority: 'highest' } );
52+
document.once( 'delete', evt => ( event = evt ), { priority: Number.POSITIVE_INFINITY } );
5353

54-
document.fire( 'delete', new DomEventData( document, data.domEvent, deleteData ) );
54+
const domEvtData = new DomEventData( document, data.domEvent, deleteData );
55+
document.fire( 'delete', domEvtData );
5556

5657
// Stop `keydown` event if `delete` event was stopped.
5758
// https://github.com/ckeditor/ckeditor5/issues/753

tests/deleteobserver.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,19 @@ describe( 'DeleteObserver', () => {
214214
sinon.assert.notCalled( keydownSpy );
215215
} );
216216

217+
// https://github.com/ckeditor/ckeditor5-typing/issues/186
218+
it( 'should stop keydown event when delete event is stopped (delete event with highest priority)', () => {
219+
const keydownSpy = sinon.spy();
220+
viewDocument.on( 'keydown', keydownSpy );
221+
viewDocument.on( 'delete', evt => evt.stop(), { priority: 'highest' } );
222+
223+
viewDocument.fire( 'keydown', new DomEventData( viewDocument, getDomEvent(), {
224+
keyCode: getCode( 'delete' )
225+
} ) );
226+
227+
sinon.assert.notCalled( keydownSpy );
228+
} );
229+
217230
it( 'should not stop keydown event when delete event is not stopped', () => {
218231
const keydownSpy = sinon.spy();
219232
viewDocument.on( 'keydown', keydownSpy );

0 commit comments

Comments
 (0)