diff --git a/code/extensions/git/package.json b/code/extensions/git/package.json index 66e8dd4981d..3c950ec1df7 100644 --- a/code/extensions/git/package.json +++ b/code/extensions/git/package.json @@ -163,14 +163,14 @@ "title": "%command.stageAll%", "category": "Git", "icon": "$(add)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.stageAllTracked", "title": "%command.stageAllTracked%", "category": "Git", "icon": "$(add)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.stageAllUntracked", @@ -243,7 +243,7 @@ "title": "%command.unstageAll%", "category": "Git", "icon": "$(remove)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.unstageSelectedRanges", @@ -270,14 +270,14 @@ "title": "%command.cleanAll%", "category": "Git", "icon": "$(discard)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.cleanAllTracked", "title": "%command.cleanAllTracked%", "category": "Git", "icon": "$(discard)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.cleanAllUntracked", @@ -889,14 +889,14 @@ "title": "%command.viewChanges%", "icon": "$(diff-multiple)", "category": "Git", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.viewStagedChanges", "title": "%command.viewStagedChanges%", "icon": "$(diff-multiple)", "category": "Git", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.viewUntrackedChanges", diff --git a/code/src/vs/workbench/contrib/scm/browser/menus.ts b/code/src/vs/workbench/contrib/scm/browser/menus.ts index 352f63b6f3e..f14d8ea79f6 100644 --- a/code/src/vs/workbench/contrib/scm/browser/menus.ts +++ b/code/src/vs/workbench/contrib/scm/browser/menus.ts @@ -6,7 +6,7 @@ import { IAction } from '../../../../base/common/actions.js'; import { equals } from '../../../../base/common/arrays.js'; import { Emitter } from '../../../../base/common/event.js'; -import { DisposableStore, IDisposable, MutableDisposable, dispose } from '../../../../base/common/lifecycle.js'; +import { DisposableStore, IDisposable, dispose } from '../../../../base/common/lifecycle.js'; import './media/scm.css'; import { localize } from '../../../../nls.js'; import { getActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js'; @@ -70,14 +70,13 @@ interface IContextualResourceMenuItem { class SCMMenusItem implements IDisposable { - private readonly _resourceGroupMenu = new MutableDisposable(); + private _resourceGroupMenu: IMenu | undefined; get resourceGroupMenu(): IMenu { - const contextKeyService = this.contextKeyService.createOverlay([ - ['scmResourceGroupResourceCount', this.group.resources.length], - ]); + if (!this._resourceGroupMenu) { + this._resourceGroupMenu = this.menuService.createMenu(MenuId.SCMResourceGroupContext, this.contextKeyService); + } - this._resourceGroupMenu.value = this.menuService.createMenu(MenuId.SCMResourceGroupContext, contextKeyService); - return this._resourceGroupMenu.value; + return this._resourceGroupMenu; } private _resourceFolderMenu: IMenu | undefined; @@ -93,9 +92,8 @@ class SCMMenusItem implements IDisposable { private contextualResourceMenus: Map | undefined; constructor( - private readonly group: ISCMResourceGroup, - private readonly contextKeyService: IContextKeyService, - private readonly menuService: IMenuService + private contextKeyService: IContextKeyService, + private menuService: IMenuService ) { } getResourceMenu(resource: ISCMResource): IMenu { @@ -208,7 +206,7 @@ export class SCMRepositoryMenus implements ISCMRepositoryMenus, IDisposable { ['multiDiffEditorEnableViewChanges', group.multiDiffEditorEnableViewChanges], ]); - result = new SCMMenusItem(group, contextKeyService, this.menuService); + result = new SCMMenusItem(contextKeyService, this.menuService); this.resourceGroupMenusItems.set(group, result); }