From 01739e4cf46625d6dff51d4fa0f61a6aec90787d Mon Sep 17 00:00:00 2001 From: Jokin Date: Sun, 16 Aug 2026 03:46:36 +0200 Subject: [PATCH] Fix Stage-1 layout regressions; ListView fills the pane MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three layouts collapsed in fe028a9, where the isMacChrome branches were removed by a scripted edit that was wrong in two ways. The *bindings* were dead by construction; the layout classes inside them were not, and nothing replaced them. - tab-bar: the edit appended a second `class` attribute to an element that already had one. A duplicate attribute is silently dropped, so the workspace strip lost h-9/pt-1/pl-1.5 entirely and collapsed under the title bar. Merged into one attribute, with a comment saying why there is exactly one. A template sweep found no other element carrying two. - connection-manager + editor-window
: the edit deleted all five [class.h-*]/[class.pl-*] bindings and put nothing back, leaving both headers with no height and no left padding. Restored h-9 pl-3 (the non-mac arm) and dropped the now-false "on macOS this row IS the titlebar" comments — every window is frameless now. Separately, the ListView never filled its panel: 7.css sets table-layout: fixed but declares no width, so the table shrank to content and left a dead grey gutter down the right of each pane. w-full is safe as a utility precisely because 7.css declares no width for `skin` to outrank it with; the unsized first then absorbs the slack, which is what makes Name elastic. Verified on a live window capture, not from a build log: the tab strip has its height back and both tables reach the pane edge. The connection-manager window needs a click to reach and is unverified visually — its fix is a verbatim copy of the editor-window one. Co-Authored-By: Claude --- ui/src/app/connection-manager/connection-manager.html | 6 +++--- ui/src/app/editor-window/editor-window.html | 6 +++--- ui/src/app/file-panel/file-panel.html | 9 +++++++-- ui/src/app/tab-bar/tab-bar.ts | 9 +++++---- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ui/src/app/connection-manager/connection-manager.html b/ui/src/app/connection-manager/connection-manager.html index 803b37b..fac8b25 100644 --- a/ui/src/app/connection-manager/connection-manager.html +++ b/ui/src/app/connection-manager/connection-manager.html @@ -5,10 +5,10 @@ [resizable]="false" (closeRequested)="close()" /> - +

{{ i18n.t('connMgr.title') }}

diff --git a/ui/src/app/editor-window/editor-window.html b/ui/src/app/editor-window/editor-window.html index 305d799..fcc404a 100644 --- a/ui/src/app/editor-window/editor-window.html +++ b/ui/src/app/editor-window/editor-window.html @@ -13,10 +13,10 @@ - +

diff --git a/ui/src/app/file-panel/file-panel.html b/ui/src/app/file-panel/file-panel.html index d1098cf..89cae83 100644 --- a/ui/src/app/file-panel/file-panel.html +++ b/ui/src/app/file-panel/file-panel.html @@ -241,8 +241,13 @@ - + Widths come from because 7.css sets table-layout:fixed. + `w-full` is Tailwind's job and safe here: 7.css never declares `width` on + table, so the `skin` layer has nothing to outrank `utilities` with. + Without it the fixed layout shrinks to content and leaves a dead grey + gutter down the right of the pane; with it the unsized first + absorbs the slack, which is what makes Name the elastic column. --> +
@for (col of visibleColumns(); track col.key) { diff --git a/ui/src/app/tab-bar/tab-bar.ts b/ui/src/app/tab-bar/tab-bar.ts index 3297196..6b87bd2 100644 --- a/ui/src/app/tab-bar/tab-bar.ts +++ b/ui/src/app/tab-bar/tab-bar.ts @@ -38,11 +38,12 @@ const CONCURRENCY_CHOICES = [2, 3, 4, 6, 8] as const; selector: 'app-tab-bar', imports: [NgIcon], template: ` - +