Path: blob/main/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { Disposable } from '../../../../base/common/lifecycle.js';6import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';7import { ILayoutService } from '../../../../platform/layout/browser/layoutService.js';8import { Registry } from '../../../../platform/registry/common/platform.js';9import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from '../../../common/contributions.js';10import { LifecyclePhase } from '../../../services/lifecycle/common/lifecycle.js';1112class ContextMenuContribution extends Disposable implements IWorkbenchContribution {1314constructor(15@ILayoutService layoutService: ILayoutService,16@IContextMenuService contextMenuService: IContextMenuService17) {18super();1920const update = (visible: boolean) => layoutService.activeContainer.classList.toggle('context-menu-visible', visible);21this._register(contextMenuService.onDidShowContextMenu(() => update(true)));22this._register(contextMenuService.onDidHideContextMenu(() => update(false)));23}24}2526Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench)27.registerWorkbenchContribution(ContextMenuContribution, LifecyclePhase.Eventually);282930