diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts index e1f6ef8a1b2..7958e1f6d11 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -204,7 +204,7 @@ export class TabsTitleControl extends TitleControl { editorsOfGroup.forEach((editor, index) => { const tabContainer = this.tabsContainer.children[index]; if (tabContainer instanceof HTMLElement) { - const isPinned = group.isPinned(editor); + const isPinned = group.isPinned(index); const isActive = group.isActive(editor); const isDirty = editor.isDirty(); diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 0b1e4790150..00a6051677b 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -917,6 +917,7 @@ export interface IEditorGroup { getEditors(mru?: boolean): IEditorInput[]; isActive(editor: IEditorInput): boolean; isPreview(editor: IEditorInput): boolean; + isPinned(index: number): boolean; isPinned(editor: IEditorInput): boolean; } diff --git a/src/vs/workbench/common/editor/editorStacksModel.ts b/src/vs/workbench/common/editor/editorStacksModel.ts index 0c761a5822a..1e136c9ef89 100644 --- a/src/vs/workbench/common/editor/editorStacksModel.ts +++ b/src/vs/workbench/common/editor/editorStacksModel.ts @@ -482,9 +482,20 @@ export class EditorGroup implements IEditorGroup { this.closeEditor(oldPreview); } - public isPinned(editor: EditorInput): boolean { - const index = this.indexOf(editor); - if (index === -1) { + public isPinned(editor: EditorInput): boolean; + public isPinned(index: number): boolean; + public isPinned(arg1: EditorInput | number): boolean { + let editor: EditorInput; + let index: number; + if (typeof arg1 === 'number') { + editor = this.editors[arg1]; + index = arg1; + } else { + editor = arg1; + index = this.indexOf(editor); + } + + if (index === -1 || !editor) { return false; // editor not found } diff --git a/src/vs/workbench/test/browser/editorStacksModel.test.ts b/src/vs/workbench/test/browser/editorStacksModel.test.ts index eea5e6d990f..bf0099788ef 100644 --- a/src/vs/workbench/test/browser/editorStacksModel.test.ts +++ b/src/vs/workbench/test/browser/editorStacksModel.test.ts @@ -486,6 +486,7 @@ suite('Editor Stacks Model', () => { assert.equal(group.isActive(input1), true); assert.equal(group.isPreview(input1), false); assert.equal(group.isPinned(input1), true); + assert.equal(group.isPinned(0), true); assert.equal(events.opened[0], input1); assert.equal(events.activated[0], input1); @@ -508,6 +509,7 @@ suite('Editor Stacks Model', () => { assert.equal(group.isActive(input2), true); assert.equal(group.isPreview(input2), true); assert.equal(group.isPinned(input2), false); + assert.equal(group.isPinned(0), false); assert.equal(events.opened[1], input2); assert.equal(events.activated[1], input2); @@ -536,6 +538,7 @@ suite('Editor Stacks Model', () => { assert.equal(group.isActive(input3), true); assert.equal(group.isPreview(input3), false); assert.equal(group.isPinned(input3), true); + assert.equal(group.isPinned(0), true); assert.equal(events.opened[2], input3); assert.equal(events.activated[2], input3); @@ -565,6 +568,7 @@ suite('Editor Stacks Model', () => { assert.equal(group.isActive(input4), true); assert.equal(group.isPreview(input4), true); assert.equal(group.isPinned(input4), false); + assert.equal(group.isPinned(0), false); assert.equal(events.opened[3], input4); assert.equal(events.activated[3], input4); @@ -692,12 +696,15 @@ suite('Editor Stacks Model', () => { assert.equal(group.activeEditor, input1); assert.equal(group.isActive(input1), true); assert.equal(group.isPinned(input1), true); + assert.equal(group.isPinned(0), true); assert.equal(group.isPreview(input1), false); assert.equal(group.isActive(input2), false); assert.equal(group.isPinned(input2), true); + assert.equal(group.isPinned(1), true); assert.equal(group.isPreview(input2), false); assert.equal(group.isActive(input3), false); assert.equal(group.isPinned(input3), true); + assert.equal(group.isPinned(2), true); assert.equal(group.isPreview(input3), false); const mru = group.getEditors(true);