diff --git a/src/vs/workbench/browser/parts/editor/editorGroupsControl.ts b/src/vs/workbench/browser/parts/editor/editorGroupsControl.ts index 0c3633fc1771c24e4a190285e3f338eaeca2213d..ea44ef4c268b8788b018045cd3e1580dc215109d 100644 --- a/src/vs/workbench/browser/parts/editor/editorGroupsControl.ts +++ b/src/vs/workbench/browser/parts/editor/editorGroupsControl.ts @@ -212,7 +212,6 @@ export class EditorGroupsControl implements IEditorGroupsControl, IVerticalSashL private updateTabOptions(tabOptions: ITabOptions, refresh?: boolean): void { const tabCloseButton = this.tabOptions ? this.tabOptions.tabCloseButton : 'right'; - const showTabCloseButton = this.tabOptions ? this.tabOptions.showTabCloseButton : false; this.tabOptions = tabOptions; if (!refresh) { @@ -250,7 +249,7 @@ export class EditorGroupsControl implements IEditorGroupsControl, IVerticalSashL } // Refresh title when icons change - else if (showingIcons !== this.tabOptions.showIcons || showTabCloseButton !== this.tabOptions.showTabCloseButton || tabCloseButton !== this.tabOptions.tabCloseButton) { + else if (showingIcons !== this.tabOptions.showIcons || tabCloseButton !== this.tabOptions.tabCloseButton) { titleControl.refresh(); } } diff --git a/src/vs/workbench/browser/parts/editor/editorPart.ts b/src/vs/workbench/browser/parts/editor/editorPart.ts index 497b0655408155c55ca0516d0d7bea88ecc0308f..4e3047ec2153bf949648b87b88d55deb0a4babb3 100644 --- a/src/vs/workbench/browser/parts/editor/editorPart.ts +++ b/src/vs/workbench/browser/parts/editor/editorPart.ts @@ -145,7 +145,6 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService previewEditors: editorConfig.enablePreview, showIcons: editorConfig.showIcons, showTabs: editorConfig.showTabs, - showTabCloseButton: editorConfig.showTabCloseButton, tabCloseButton: editorConfig.tabCloseButton }; @@ -155,7 +154,6 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService previewEditors: true, showIcons: false, showTabs: true, - showTabCloseButton: true, tabCloseButton: 'right' }; } @@ -189,7 +187,6 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService this.tabOptions = { previewEditors: newPreviewEditors, showIcons: editorConfig.showIcons, - showTabCloseButton: editorConfig.showTabCloseButton, tabCloseButton: editorConfig.tabCloseButton, showTabs: editorConfig.showTabs }; diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts index d5f4cf6f8b3f0c5bacc462725ad64df842ab0951..cd6f931f357758e8379661c24ec5817e4ef20977 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -216,10 +216,16 @@ export class TabsTitleControl extends TitleControl { // Container tabContainer.setAttribute('aria-label', `${name}, tab`); tabContainer.title = verboseDescription; - if (this.tabOptions.showTabCloseButton) { + if (this.tabOptions.tabCloseButton === 'off') { + DOM.addClass(tabContainer, 'no-close-button'); + } else { DOM.removeClass(tabContainer, 'no-close-button'); + } + + if (this.tabOptions.tabCloseButton === 'left') { + DOM.addClass(tabContainer, 'close-position-left'); } else { - DOM.addClass(tabContainer, 'no-close-button'); + DOM.removeClass(tabContainer, 'close-position-left'); } // Label @@ -349,18 +355,6 @@ export class TabsTitleControl extends TitleControl { tabContainer.setAttribute('role', 'presentation'); // cannot use role "tab" here due to https://github.com/Microsoft/vscode/issues/8659 DOM.addClass(tabContainer, 'tab monaco-editor-background'); - if (!this.tabOptions.showTabCloseButton || this.tabOptions.tabCloseButton === 'off') { - DOM.addClass(tabContainer, 'no-close-button'); - } else { - DOM.removeClass(tabContainer, 'no-close-button'); - } - - if (this.tabOptions.tabCloseButton === 'left') { - DOM.addClass(tabContainer, 'close-position-left'); - } else { - DOM.removeClass(tabContainer, 'close-position-left'); - } - // Tab Editor Label const editorLabel = this.instantiationService.createInstance(EditorLabel, tabContainer, void 0); this.editorLabels.push(editorLabel); diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 3aecd96897e854518dccad11f606f48e65131ebd..6a542a6cc3a53650263c813e7a3a3c06adbe8fa6 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -897,7 +897,6 @@ export interface IWorkbenchEditorConfiguration { workbench: { editor: { showTabs: boolean; - showTabCloseButton: boolean; tabCloseButton: 'left' | 'right' | 'off'; showIcons: boolean; enablePreview: boolean; diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index 90bc60710a0f3254298db49f2da9e81eab82be63..bf0406fc24fafb0640622c9e46570d092d532c10 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -113,16 +113,11 @@ configurationRegistry.registerConfiguration({ 'description': nls.localize('showEditorTabs', "Controls if opened editors should show in tabs or not."), 'default': true }, - 'workbench.editor.showTabCloseButton': { - 'type': 'boolean', - 'description': nls.localize('showEditorTabCloseButton', "Controls if editor tabs should have a visible close button or not."), - 'default': true - }, 'workbench.editor.tabCloseButton': { 'type': 'string', 'enum': ['left', 'right', 'off'], 'default': 'right', - 'description': nls.localize('editorTabCloseButton', "Controls the position of the editor's tabs close buttons.") + 'description': nls.localize('editorTabCloseButton', "Controls the position of the editor's tabs close buttons or disables them when set to 'off'.") }, 'workbench.editor.showIcons': { 'type': 'boolean', diff --git a/src/vs/workbench/services/group/common/groupService.ts b/src/vs/workbench/services/group/common/groupService.ts index 295d9b542bb2c17fc9effdad487b10bc10b3eb91..241f16b5089c3ea95d866586d005ecee26c23707 100644 --- a/src/vs/workbench/services/group/common/groupService.ts +++ b/src/vs/workbench/services/group/common/groupService.ts @@ -21,8 +21,7 @@ export const IEditorGroupService = createDecorator('editorG export interface ITabOptions { showTabs?: boolean; - showTabCloseButton?: boolean; - tabCloseButton?: string; + tabCloseButton?: 'left' | 'right' | 'off'; showIcons?: boolean; previewEditors?: boolean; };