From d61114d6d1cf4ff01d79d09d06c1ed2619f9805e Mon Sep 17 00:00:00 2001 From: FernandoAscencio Date: Mon, 15 May 2023 13:01:08 -0400 Subject: [PATCH] quick-open: `Esc` closes inputbox when focus out. Closes: 6773 Signed-Off-By: FernandoAscencio Co-Authored-By: vince-fugnitto --- .../quick-command-frontend-contribution.ts | 15 ++++++++++++++- .../browser/quick-input/quick-command-service.ts | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/core/src/browser/quick-input/quick-command-frontend-contribution.ts b/packages/core/src/browser/quick-input/quick-command-frontend-contribution.ts index 6204f7344b082..36591f1340848 100644 --- a/packages/core/src/browser/quick-input/quick-command-frontend-contribution.ts +++ b/packages/core/src/browser/quick-input/quick-command-frontend-contribution.ts @@ -17,7 +17,7 @@ import { injectable, inject, optional } from 'inversify'; import { CommandRegistry, CommandContribution, MenuContribution, MenuModelRegistry, nls } from '../../common'; import { KeybindingRegistry, KeybindingContribution } from '../keybinding'; import { CommonMenus } from '../common-frontend-contribution'; -import { CLEAR_COMMAND_HISTORY, quickCommand, QuickCommandService } from './quick-command-service'; +import { CLOSE_QUICK_OPEN, CLEAR_COMMAND_HISTORY, quickCommand, QuickCommandService } from './quick-command-service'; import { QuickInputService } from './quick-input-service'; import { ConfirmDialog, Dialog } from '../dialogs'; @@ -49,6 +49,9 @@ export class QuickCommandFrontendContribution implements CommandContribution, Ke } } }); + commands.registerCommand(CLOSE_QUICK_OPEN, { + execute: () => this.quickInputService?.hide() + }); } registerMenus(menus: MenuModelRegistry): void { @@ -67,5 +70,15 @@ export class QuickCommandFrontendContribution implements CommandContribution, Ke command: quickCommand.id, keybinding: 'ctrlcmd+shift+p' }); + keybindings.registerKeybinding({ + command: CLOSE_QUICK_OPEN.id, + keybinding: 'esc', + when: 'inQuickOpen' + }); + keybindings.registerKeybinding({ + command: CLOSE_QUICK_OPEN.id, + keybinding: 'shift+esc', + when: 'inQuickOpen' + }); } } diff --git a/packages/core/src/browser/quick-input/quick-command-service.ts b/packages/core/src/browser/quick-input/quick-command-service.ts index 3e105c34ec4c3..ea80c90554849 100644 --- a/packages/core/src/browser/quick-input/quick-command-service.ts +++ b/packages/core/src/browser/quick-input/quick-command-service.ts @@ -33,6 +33,10 @@ export const CLEAR_COMMAND_HISTORY = Command.toDefaultLocalizedCommand({ label: 'Clear Command History' }); +export const CLOSE_QUICK_OPEN: Command = { + id: 'workbench.action.closeQuickOpen' +}; + @injectable() export class QuickCommandService implements QuickAccessContribution, QuickAccessProvider { static PREFIX = '>';