Skip to content

Merge master into v8-branch (edge group size preservation, #1495)#1499

Merged
mathuo merged 3 commits into
v8-branchfrom
claude/issue-1495-v8-branch
Jul 21, 2026
Merged

Merge master into v8-branch (edge group size preservation, #1495)#1499
mathuo merged 3 commits into
v8-branchfrom
claude/issue-1495-v8-branch

Conversation

@mathuo

@mathuo mathuo commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Description

Brings master into v8-branch. The only change master has that v8-branch didn't already contain is the edge-group resize-observer visibility guard from #1495 (merged to master in #1498).

What #1495 fixed: ShellManager installs its own ResizeObserver on the shell element. Unlike the Resizable base class — which guards against hidden/detached elements via offsetParent and isInDocument — this observer had no such guard. When a nested dockview's onlyWhenVisible host panel is deactivated, the shell element collapses to 0×0, so the observer fired layout(0, 0) and clamped the low-priority edge group to its minimum size (not recovered on reactivation). The fix skips resize events while the shell is hidden or detached.

v8-branch's ShellManager had evolved (auto-hide, autoReveal, cached-visible-size serialization) but the constructor's resize-observer callback was byte-identical to master's and had the same missing guard — so the bug was present here too. The fix merged in cleanly with no conflicts.

Type of change

  • Bug fix

Affected packages

  • dockview-core

How to test

Nest a Dockview inside an outer Dockview panel (default onlyWhenVisible renderer), add an Edge Group and resize it above its minimum, switch to another outer tab and back — the Edge Group keeps its size.

Automated: dockviewShell.spec.ts resize observer visibility guard (#1495) block covers the hidden (offsetParent === null) and detached-from-document cases.

Checklist

  • yarn test passes (dockview-core: 1269 tests green on v8-branch)
  • biome format / biome lint clean on the changed files
  • Merged file type-checks (tsc --noEmit) with 0 errors
  • I have added or updated tests where applicable

🤖 Generated with Claude Code


Generated by Claude Code

mathuo and others added 3 commits July 20, 2026 21:35
The ShellManager installs its own ResizeObserver on the shell element to
drive the edge-group splitview layout. Unlike the Resizable base class,
it did not guard against the element being hidden or detached from the
DOM. When a nested dockview's `onlyWhenVisible` host panel is
deactivated the shell element collapses to (0, 0), so the observer laid
the splitview out at zero and clamped the low-priority edge groups down
to their minimum size — losing the user's sizing when the panel was
later reactivated.

Skip resize events when the shell has no offsetParent (display: none on
it or an ancestor) or is no longer in the document, mirroring the
existing guard in Resizable.

Fixes #1495

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018axBKCULSaEET94Tefd1Ru
fix(core): preserve edge group size when nested dockview host is hidden
Brings in the edge-group resize-observer visibility guard (#1495):
preserve edge group size when a nested dockview's onlyWhenVisible host
panel is hidden.
@sonarqubecloud

Copy link
Copy Markdown

@mathuo
mathuo merged commit f0e4310 into v8-branch Jul 21, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant