Change:
Type: <bBug</bfile A from EXPLORER tab with file A file B from EXPLORER -breadcrumb shows file B path (correct) on the pinned tab with file A -breadcrumb shows file B path but should file A This is the minimal case. When I have multiple pinned tabs and open other files, the breadcrump gets more random. UPDATE: Looks like the bug only comes out if this setting is set to true: VS Code version: Code 1.92.2 (, 2024-08-14T17:29:30.058Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.15.153.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ macos-modern-theme2.3.19 better-cpp-syntax1.27.1 remote-containers0.380.0 remote-ssh0.113.1 remote-ssh-edit0.86.0 remote-wsl0.88.2 vscode-remote-extensionpack0.25.0 remote-explorer0.4.3 remote-server1.5.2 vscode-clangd0.1.29 regionfolder1.0.22 cmake-tools1.18.44 cpptools1.21.6 workspace-include-what-you-use0.0.3 cmake0.0.17 (4 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
This doesn't reproduce for me. Please try without extensions enabled and without custom settings
I turned off extensions and custom settings. I nailed it down to this setting in It appears that the bug is reproducible only if is true.
can you help here? It seems that pinned, extra-row items don't make the call to the breadcrumbs controls, like how it is done for instance for the
Thanks for steps. could you take a look?
Thanks for reporting. When switching to the last previous active tab of the other tab bar it wasn't updating the breadcrumbs. Made a fix
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Still doesn't work correctly on current insiders version. Version: 1.93.0-insider (user setup) Commit: Date: 2024-08-23T06:45:56.108Z Electron: 30.4.0 ElectronBuildId: Chromium: 124.0.6367.243 20.15.1 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0.

Discussion:
private readonly stickyEditorTabsControl: IEditorTabsControl; private readonly unstickyEditorTabsControl: IEditorTabsControl; <ins> private activeControl: IEditorTabsControl | undefined; </ins> constructor( private readonly parent: HTMLElement, editorPartsView: IEditorPartsView,

this.stickyEditorTabsControl = this._register(this.instantiationService.createInstance(MultiEditorTabsControl, this.parent, editorPartsView, this.groupsView, this.groupView, stickyModel)); this.unstickyEditorTabsControl = this._register(this.instantiationService.createInstance(MultiEditorTabsControl, this.parent, editorPartsView, this.groupsView, this.groupView, unstickyModel)); <del> this.handlePinnedTabsLayoutChange(); </del> <ins> this.handleTabBarsStateChange(); } private handleTabBarsStateChange(): void { this.activeControl = this.model.activeEditor ? this.getEditorTabsController(this.model.activeEditor) : undefined; this.handleTabBarsLayoutChange(); </ins> } <del> private handlePinnedTabsLayoutChange(): void { </del> <ins> private handleTabBarsLayoutChange(): void { </ins> if (this.groupView.count === 0) { // Do nothing as no tab bar is visible return;

} } <ins> private didActiveControlChange() { return this.activeControl === (this.model.activeEditor ? this.getEditorTabsController(this.model.activeEditor) : undefined); } </ins> private getEditorTabsController(editor: EditorInput): IEditorTabsControl { return this.model.isSticky(editor) ? this.stickyEditorTabsControl : this.unstickyEditorTabsControl; } openEditor(editor: EditorInput, options: IInternalEditorOpenOptions): boolean { <del> const didChange = this.getEditorTabsController(editor).openEditor(editor, options); </del> <ins> const didActiveControlChange = this.didActiveControlChange(); const didOpenEditorChange = this.getEditorTabsController(editor).openEditor(editor, options); const didChange = didOpenEditorChange || didActiveControlChange; </ins> if (didChange) { this.handleOpenedEditors(); }

const stickyEditors = editors.filter(e => this.model.isSticky(e)); const unstickyEditors = editors.filter(e => !this.model.isSticky(e)); <ins> const didActiveControlChange = this.didActiveControlChange(); </ins> const didChangeOpenEditorsSticky = this.stickyEditorTabsControl.openEditors(stickyEditors); const didChangeOpenEditorsUnSticky = this.unstickyEditorTabsControl.openEditors(unstickyEditors); <del> const didChange = didChangeOpenEditorsSticky || didChangeOpenEditorsUnSticky; </del> <ins> const didChange = didChangeOpenEditorsSticky || didChangeOpenEditorsUnSticky || didActiveControlChange; </ins> if (didChange) { this.handleOpenedEditors(); }

} private handleOpenedEditors(): void { <del> this.handlePinnedTabsLayoutChange(); </del> <ins> this.handleTabBarsStateChange(); </ins> } beforeCloseEditor(editor: EditorInput): void {

} private handleClosedEditors(): void { <del> this.handlePinnedTabsLayoutChange(); </del> <ins> this.handleTabBarsStateChange(); </ins> } moveEditor(editor: EditorInput, fromIndex: number, targetIndex: number, stickyStateChange: boolean): void {

this.unstickyEditorTabsControl.openEditor(editor); } <del> this.handlePinnedTabsLayoutChange(); </del> <ins> this.handleTabBarsStateChange(); </ins> } else { if (this.model.isSticky(editor)) {

this.unstickyEditorTabsControl.closeEditor(editor); this.stickyEditorTabsControl.openEditor(editor); <del> this.handlePinnedTabsLayoutChange(); </del> <ins> this.handleTabBarsStateChange(); </ins> } unstickEditor(editor: EditorInput): void { this.stickyEditorTabsControl.closeEditor(editor); this.unstickyEditorTabsControl.openEditor(editor); <del> this.handlePinnedTabsLayoutChange(); </del> <ins> this.handleTabBarsStateChange(); </ins> } setActive(isActive: boolean): void {