Skip to content

Commit ceddcd8

Browse files
List View: Add a special case for shortcuts coming from modals (WordPress#61606)
Co-authored-by: Mamaduka <[email protected]> Co-authored-by: andrewserong <[email protected]>
1 parent b941a1e commit ceddcd8

File tree

1 file changed

+8
-7
lines changed
  • packages/block-editor/src/components/list-view

1 file changed

+8
-7
lines changed

packages/block-editor/src/components/list-view/block.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import { BACKSPACE, DELETE } from '@wordpress/keycodes';
3030
import isShallowEqual from '@wordpress/is-shallow-equal';
3131
import { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
3232
import { speak } from '@wordpress/a11y';
33-
import { isTextField } from '@wordpress/dom';
3433

3534
/**
3635
* Internal dependencies
@@ -182,10 +181,7 @@ function ListViewBlock( {
182181
return;
183182
}
184183

185-
// Retain the default behavior for text fields.
186-
if ( isTextField( event.target ) ) {
187-
return;
188-
}
184+
const isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );
189185

190186
// If multiple blocks are selected, deselect all blocks when the user
191187
// presses the escape key.
@@ -197,10 +193,15 @@ function ListViewBlock( {
197193
event.preventDefault();
198194
selectBlock( event, undefined );
199195
} else if (
200-
event.keyCode === BACKSPACE ||
201-
event.keyCode === DELETE ||
196+
isDeleteKey ||
202197
isMatch( 'core/block-editor/remove', event )
203198
) {
199+
// Do not handle single-key block deletion shortcuts when events come from modals;
200+
// retain the default behavior for these keys.
201+
if ( isDeleteKey && event.target.closest( '[role=dialog]' ) ) {
202+
return;
203+
}
204+
204205
const {
205206
blocksToUpdate: blocksToDelete,
206207
firstBlockClientId,

0 commit comments

Comments
 (0)