@@ -84,6 +84,14 @@ export default class Widget extends Plugin {
8484
8585 // Handle custom keydown behaviour.
8686 this . listenTo ( viewDocument , 'keydown' , ( ...args ) => this . _onKeydown ( ...args ) , { priority : 'high' } ) ;
87+
88+ // Handle custom delete behaviour.
89+ this . listenTo ( viewDocument , 'delete' , ( evt , data ) => {
90+ if ( this . _handleDelete ( data . direction == 'forward' ) ) {
91+ data . preventDefault ( ) ;
92+ evt . stop ( ) ;
93+ }
94+ } , { priority : 'high' } ) ;
8795 }
8896
8997 /**
@@ -141,9 +149,7 @@ export default class Widget extends Plugin {
141149
142150 // Checks if the keys were handled and then prevents the default event behaviour and stops
143151 // the propagation.
144- if ( isDeleteKeyCode ( keyCode ) ) {
145- wasHandled = this . _handleDelete ( isForward ) ;
146- } else if ( isArrowKeyCode ( keyCode ) ) {
152+ if ( isArrowKeyCode ( keyCode ) ) {
147153 wasHandled = this . _handleArrowKeys ( isForward ) ;
148154 } else if ( isSelectAllKeyCode ( domEventData ) ) {
149155 wasHandled = this . _selectAllNestedEditableContent ( ) || this . _selectAllContent ( ) ;
@@ -356,14 +362,6 @@ function isArrowKeyCode( keyCode ) {
356362 keyCode == keyCodes . arrowdown ;
357363}
358364
359- // Returns 'true' if provided key code represents one of the delete keys: delete or backspace.
360- //
361- // @param {Number } keyCode
362- // @returns {Boolean }
363- function isDeleteKeyCode ( keyCode ) {
364- return keyCode == keyCodes . delete || keyCode == keyCodes . backspace ;
365- }
366-
367365// Returns 'true' if provided (DOM) key event data corresponds with the Ctrl+A keystroke.
368366//
369367// @param {module:engine/view/observer/keyobserver~KeyEventData } domEventData
0 commit comments