From ab1613b84b6ec862755431c32c78c3f0ac1e8190 Mon Sep 17 00:00:00 2001 From: Andrew Serong <14988353+andrewserong@users.noreply.github.com> Date: Wed, 21 Jun 2023 16:41:30 +1000 Subject: [PATCH] Try clearing the selection from within the list view --- .../src/components/list-view/block.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/block-editor/src/components/list-view/block.js b/packages/block-editor/src/components/list-view/block.js index e9eb4a7827686..9cd7b35690639 100644 --- a/packages/block-editor/src/components/list-view/block.js +++ b/packages/block-editor/src/components/list-view/block.js @@ -23,6 +23,7 @@ import { import { useDispatch, useSelect } from '@wordpress/data'; import { sprintf, __ } from '@wordpress/i18n'; import { focus } from '@wordpress/dom'; +import { ESCAPE } from '@wordpress/keycodes'; /** * Internal dependencies @@ -151,6 +152,20 @@ function ListViewBlock( { } }, [] ); + // If multiple blocks are selected, deselect all blocks when the user + // presses the escape key. + const onKeyDown = ( event ) => { + if ( + event.keyCode === ESCAPE && + ! event.defaultPrevented && + selectedClientIds.length > 0 + ) { + event.stopPropagation(); + event.preventDefault(); + selectBlock( event, undefined ); + } + }; + const onMouseEnter = useCallback( () => { setIsHovered( true ); toggleBlockHighlight( clientId, true ); @@ -258,6 +273,7 @@ function ListViewBlock( { return (