@@ -84,6 +84,14 @@ export default class Widget extends Plugin {
84
84
85
85
// Handle custom keydown behaviour.
86
86
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' } ) ;
87
95
}
88
96
89
97
/**
@@ -141,9 +149,7 @@ export default class Widget extends Plugin {
141
149
142
150
// Checks if the keys were handled and then prevents the default event behaviour and stops
143
151
// the propagation.
144
- if ( isDeleteKeyCode ( keyCode ) ) {
145
- wasHandled = this . _handleDelete ( isForward ) ;
146
- } else if ( isArrowKeyCode ( keyCode ) ) {
152
+ if ( isArrowKeyCode ( keyCode ) ) {
147
153
wasHandled = this . _handleArrowKeys ( isForward ) ;
148
154
} else if ( isSelectAllKeyCode ( domEventData ) ) {
149
155
wasHandled = this . _selectAllNestedEditableContent ( ) || this . _selectAllContent ( ) ;
@@ -356,14 +362,6 @@ function isArrowKeyCode( keyCode ) {
356
362
keyCode == keyCodes . arrowdown ;
357
363
}
358
364
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
-
367
365
// Returns 'true' if provided (DOM) key event data corresponds with the Ctrl+A keystroke.
368
366
//
369
367
// @param {module:engine/view/observer/keyobserver~KeyEventData } domEventData
0 commit comments