diff --git a/CHANGELOG.md b/CHANGELOG.md index bef61897fda1b..37689bb96ee67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ - [Previous Changelogs](https://github.com/eclipse-theia/theia/tree/master/doc/changelogs/) + +## v1.38.0 - 04/27/2023 + +[Breaking Changes:](#breaking_changes_1.38.0) + +- [core] moved `ToolbarAwareTabBar.Styles` to `ScrollableTabBar.Styles` [12411](https://github.com/eclipse-theia/theia/pull/12411/) + ## v1.37.0 - 04/27/2023 - [application-package] bumped the default supported VS Code API from `1.72.2` to `1.74.2` [#12468](https://github.com/eclipse-theia/theia/pull/12468) diff --git a/examples/playwright/src/tests/theia-terminal-view.test.ts b/examples/playwright/src/tests/theia-terminal-view.test.ts index c35ab5759fbc7..0fa39a89d8bea 100644 --- a/examples/playwright/src/tests/theia-terminal-view.test.ts +++ b/examples/playwright/src/tests/theia-terminal-view.test.ts @@ -55,7 +55,7 @@ test.describe('Theia Terminal View', () => { // close all terminals for (const terminal of allTerminals) { - await terminal.activate(); // close box is not visible when not active + await terminal.activate(); await terminal.close(); } diff --git a/packages/core/src/browser/shell/tab-bars.ts b/packages/core/src/browser/shell/tab-bars.ts index 9a6abea7daa98..696e5653d51d1 100644 --- a/packages/core/src/browser/shell/tab-bars.ts +++ b/packages/core/src/browser/shell/tab-bars.ts @@ -679,7 +679,6 @@ export class ScrollableTabBar extends TabBar { } protected updateTabs(): void { - const content = []; if (this.dynamicTabOptions) { @@ -696,18 +695,19 @@ export class ScrollableTabBar extends TabBar { } else { this.needsRecompute = false; if (this.orientation === 'horizontal') { - this.tabSize = Math.max(Math.min(this.scrollbarHost.clientWidth / this.titles.length, - this.dynamicTabOptions.defaultTabSize), this.dynamicTabOptions.minimumTabSize); - let availableWidth = this.scrollbarHost.clientWidth; + let effectiveWidth = availableWidth; if (!this.openTabsContainer.classList.contains('p-mod-hidden')) { availableWidth += this.openTabsContainer.getBoundingClientRect().width; } if (this.dynamicTabOptions.minimumTabSize * this.titles.length <= availableWidth) { + effectiveWidth += this.openTabsContainer.getBoundingClientRect().width; this.openTabsContainer.classList.add('p-mod-hidden'); } else { this.openTabsContainer.classList.remove('p-mod-hidden'); } + this.tabSize = Math.max(Math.min(effectiveWidth / this.titles.length, + this.dynamicTabOptions.defaultTabSize), this.dynamicTabOptions.minimumTabSize); } } this.node.classList.add('dynamic-tabs'); @@ -726,7 +726,7 @@ export class ScrollableTabBar extends TabBar { content[i] = this.renderer.renderTab(renderData); } VirtualDOM.render(content, this.contentNode); - if (this.scrollBar) { + if (this.dynamicTabOptions && !this.isMouseOver && this.scrollBar) { this.scrollBar.update(); } } diff --git a/packages/core/src/browser/style/tabs.css b/packages/core/src/browser/style/tabs.css index f6e93e0259113..21b9b9885a5b2 100644 --- a/packages/core/src/browser/style/tabs.css +++ b/packages/core/src/browser/style/tabs.css @@ -195,7 +195,6 @@ height: inherit; } - .p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable > .p-TabBar-tabCloseIcon, .p-TabBar.theia-app-centers .p-TabBar-tab.theia-mod-pinned > .p-TabBar-tabCloseIcon { padding: 2px; @@ -438,7 +437,6 @@ height: 100%; } - .p-TabBar[data-orientation='horizontal'] .p-TabBar-content { flex-direction: row; } @@ -448,7 +446,7 @@ } .p-TabBar.theia-app-centers[data-orientation='horizontal'].dynamic-tabs .p-TabBar-tabLabel { - /* fade out text with dynamic tabs strategy*/ + /* fade out text with dynamic tabs strategy */ mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 1) 15px); -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 1) 15px); flex: 1;