diff --git a/src/vs/workbench/contrib/files/browser/fileActions.ts b/src/vs/workbench/contrib/files/browser/fileActions.ts index 837f66be83b71..f12976ad42cb4 100644 --- a/src/vs/workbench/contrib/files/browser/fileActions.ts +++ b/src/vs/workbench/contrib/files/browser/fileActions.ts @@ -85,10 +85,15 @@ export class NewFileAction extends Action { static readonly LABEL = nls.localize('createNewFile', "New File"); constructor( + @IExplorerService explorerService: IExplorerService, @ICommandService private commandService: ICommandService ) { super('explorer.newFile', NEW_FILE_LABEL); this.class = 'explorer-action new-file'; + this._register(explorerService.onDidChangeEditable(e => { + const elementIsBeingEdited = explorerService.isEditable(e); + this.enabled = !elementIsBeingEdited; + })); } run(): Promise { @@ -102,10 +107,15 @@ export class NewFolderAction extends Action { static readonly LABEL = nls.localize('createNewFolder', "New Folder"); constructor( + @IExplorerService explorerService: IExplorerService, @ICommandService private commandService: ICommandService ) { super('explorer.newFolder', NEW_FOLDER_LABEL); this.class = 'explorer-action new-folder'; + this._register(explorerService.onDidChangeEditable(e => { + const elementIsBeingEdited = explorerService.isEditable(e); + this.enabled = !elementIsBeingEdited; + })); } run(): Promise { @@ -599,6 +609,10 @@ export class CollapseExplorerView extends Action { @IExplorerService readonly explorerService: IExplorerService ) { super(id, label, 'explorer-action collapse-explorer'); + this._register(explorerService.onDidChangeEditable(e => { + const elementIsBeingEdited = explorerService.isEditable(e); + this.enabled = !elementIsBeingEdited; + })); } run(): Promise { @@ -623,6 +637,10 @@ export class RefreshExplorerView extends Action { @IExplorerService private readonly explorerService: IExplorerService ) { super(id, label, 'explorer-action refresh-explorer'); + this._register(explorerService.onDidChangeEditable(e => { + const elementIsBeingEdited = explorerService.isEditable(e); + this.enabled = !elementIsBeingEdited; + })); } public run(): Promise {