Skip to content

Commit

Permalink
KeyboardShortcuts: Change delete shortcut to primaryShift + Backspace
Browse files Browse the repository at this point in the history
  • Loading branch information
yogeshbhutkar committed Dec 24, 2024
1 parent 429c7bd commit 1cdc6ea
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@ function KeyboardShortcutsRegister() {
modifier: 'primaryShift',
character: 'backspace',
},
aliases: [
{
modifier: 'primaryShift',
character: 'delete',
},
],
} );

registerShortcut( {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { isCollapsed, isEmpty } from '@wordpress/rich-text';

export default ( props ) => ( element ) => {
function onKeyDown( event ) {
const { keyCode } = event;
const { keyCode, ctrlKey, metaKey, shiftKey } = event;

if ( event.defaultPrevented ) {
return;
Expand All @@ -30,6 +30,11 @@ export default ( props ) => ( element ) => {
return;
}

// Exclude (command|ctrl)+shift+backspace as they are shortcuts for deleting blocks.
if ( ( ctrlKey && shiftKey ) || ( metaKey && shiftKey ) ) {
return;
}

if ( onMerge ) {
onMerge( ! isReverse );
}
Expand Down
10 changes: 5 additions & 5 deletions test/e2e/specs/editor/blocks/navigation.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ test.describe( 'Navigation block', () => {
await pageUtils.pressKeys( 'ArrowDown' );

// remove the child link
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );

const submenuBlock2 = editor.canvas.getByRole( 'document', {
name: 'Block: Submenu',
Expand Down Expand Up @@ -494,7 +494,7 @@ test.describe( 'Navigation block', () => {
await pageUtils.pressKeys( 'ArrowDown', { times: 4 } );
await navigation.checkLabelFocus( 'wordpress.org' );
// Delete the nav link
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
// Focus moved to sibling
await navigation.checkLabelFocus( 'Dog' );
// Add a link back so we can delete the first submenu link and see if focus returns to the parent submenu item
Expand All @@ -507,15 +507,15 @@ test.describe( 'Navigation block', () => {
await pageUtils.pressKeys( 'ArrowUp', { times: 2 } );
await navigation.checkLabelFocus( 'Dog' );
// Delete the nav link
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await pageUtils.pressKeys( 'ArrowDown' );
// Focus moved to parent submenu item
await navigation.checkLabelFocus( 'example.com' );
// Deleting this should move focus to the sibling item
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await navigation.checkLabelFocus( 'Cat' );
// Deleting with no more siblings should focus the navigation block again
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await expect( navBlock ).toBeFocused();
// Wait until the nav block inserter is visible before we continue.
await expect( navBlockInserter ).toBeVisible();
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/specs/editor/various/block-deletion.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ test.describe( 'Block deletion', () => {
).toBeFocused();

// Remove the current paragraph via dedicated keyboard shortcut.
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );

// Ensure the last block was removed.
await expect.poll( editor.getBlocks ).toMatchObject( [
Expand Down
16 changes: 10 additions & 6 deletions test/e2e/specs/editor/various/list-view.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -809,8 +809,8 @@ test.describe( 'List View', () => {

// Delete remaining blocks.
// Keyboard shortcut should also work.
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await expect
.poll(
listViewUtils.getBlocksWithA11yAttributes,
Expand Down Expand Up @@ -842,7 +842,7 @@ test.describe( 'List View', () => {
{ name: 'core/heading', selected: false },
] );

await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await expect
.poll(
listViewUtils.getBlocksWithA11yAttributes,
Expand All @@ -865,7 +865,11 @@ test.describe( 'List View', () => {
.getByRole( 'gridcell', { name: 'File' } )
.getByRole( 'link' )
.focus();
for ( const keys of [ 'Delete', 'Backspace', 'primaryShift+Delete' ] ) {
for ( const keys of [
'Delete',
'Backspace',
'primaryShift+Backspace',
] ) {
await pageUtils.pressKeys( keys );
await expect
.poll(
Expand Down Expand Up @@ -1133,7 +1137,7 @@ test.describe( 'List View', () => {
optionsForFileMenu,
'Pressing Space should also open the menu dropdown'
).toBeVisible();
await pageUtils.pressKeys( 'primaryShift+Delete' ); // Keyboard shortcut for Delete.
await pageUtils.pressKeys( 'primaryShift+Backspace' ); // Keyboard shortcut for Delete.
await expect
.poll(
listViewUtils.getBlocksWithA11yAttributes,
Expand All @@ -1153,7 +1157,7 @@ test.describe( 'List View', () => {
optionsForFileMenu.getByRole( 'menuitem', { name: 'Delete' } ),
'The delete menu item should be hidden for locked blocks'
).toBeHidden();
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await expect
.poll(
listViewUtils.getBlocksWithA11yAttributes,
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/specs/site-editor/template-part.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ test.describe( 'Template Part', () => {
await editor.selectBlocks( siteTitle );

// Remove the default site title block.
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );

// Insert a group block with a Site Title block inside.
await editor.insertBlock( {
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/specs/widgets/editing-widgets.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ test.describe( 'Widgets screen', () => {
.getByRole( 'document', { name: 'Block: Paragraph' } )
.filter( { hasText: 'Second Paragraph' } )
.focus();
await pageUtils.pressKeys( 'primaryShift+Delete' );
await pageUtils.pressKeys( 'primaryShift+Backspace' );
await widgetsScreen.saveWidgets();

await expect.poll( widgetsScreen.getWidgetAreaBlocks ).toMatchObject( {
Expand Down

0 comments on commit 1cdc6ea

Please sign in to comment.