Repository navigation
fix: split panes reserve the OS-control gutter on their own edge only; inspector rows share one inset - #512
Merged
Conversation
…ir own window edge; inspector rows share one inset Split view (6.14 residue): every pane's preload applied the macOS traffic-light gutter, so the right pane's header carried an 86px dead zone under nothing. The window container now tells each pane which window edges it runs along (`window:pane-edges-changed`); the preload reserves the traffic-light gutter only for a pane on the left edge and the Win/Linux controls gutter only for one on the right edge. Re-sent on load, de-duped across divider drags, and covered by a container test. Properties panel: the row's hover padding indented labels 8px past the section headings, buttons and meta rows around them, and the shared Properties|Comments strip sat 8px in while the body sat 16px. The row now bleeds its hover face into the gutter instead (negative inline margin), the strip insets `--space-4` like the body (zeroed in Database, where it mounts inside the padded body), and the Files inspector body adopts the same `--space-4` inset as the other inspectors. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Split view: the right pane no longer carries the traffic-light gutter (6.14 residue)
Every pane's preload applied the macOS 86px header inset, so the right pane of a split had an 86px dead zone under nothing.
WindowContainer.layout()now tells each pane which window edges it runs along (window:pane-edges-changed,{left, right}); the preload reserves the traffic-light gutter only for a pane on the left edge and the Win/LinuxtitleBarOverlaygutter only for one on the right edge. The signal is re-sent ondom-ready/did-finish-load(a side pane is laid out before its renderer exists), de-duplicated across divider drags, and cleared on tab teardown.window-container-split.test.tscovers lone pane → split → no re-send on relayout → swap → close.951-split-gutter-probe): left panepadding-left: 86px, right pane12px, lone pane86px.Properties panel: one left edge
Three insets lived in one panel: the shared Properties|Comments strip at 8px, headings/buttons/meta rows at 16px, and every property label at 24px (the row's hover padding stacked on the body inset). Now:
.bs-props__rowcancels its hover padding withmargin-inline: calc(-1 * var(--space-2)), so the hover face bleeds into the gutter and the label sits on the host's inset..bs-panel-tabsinsets--space-4like the bodies below it; Database zeroes it (.db-inspector__props-host .bs-panel-tabs) because the strip mounts inside its already-padded body..inspector__bodyadopts--space-4like Database / Preview / Notes.Probe measurement in the Database inspector: panel 1121, strip 1137, first tab 1137, row label 1137, section title 1137.
Security note
New IPC is main → renderer only (no new capability surface, no new renderer → main method). The preload shape-checks the payload (two booleans) before applying it.
Verification
vitest: window-container suites 46/46;packages/sdk+packages/editor/src/comments3141/3141.tsc --noEmit(packages) clean;biome checkon touched files clean;bun run lint:appsall ratchets green (css tokens, accent-fill, offcanvas, …).🤖 Generated with Claude Code