Skip to content

Fix: Lay the non-client view out with the frame view when the appbar changes width - #193

Merged
b-re-w merged 1 commit into
developfrom
feat/client-relayout
Nov 9, 2026
Merged

b-re-w merged 1 commit into
developfrom
feat/client-relayout

Conversation

@b-re-w

@b-re-w b-re-w commented Nov 9, 2026

Copy link
Copy Markdown
Member

After #190 and #191, Brave's bar-folded still fails (.scratch\bar-rows-after3): after "appbar: hidden false" the page keeps the folded width 1424 even though the browser view laid out again. views::NonClientView::Layout is what gives the client view the frame view's GetBoundsForClientView, and frame_layout::relayout laid out only the frame view.

It now also lays out the frame view's parent. The parent is found through the recorded view parent offset (chromium::view::parent_of), and only when that place is readable and holds an object whose table pointer lies in the browser module. Chrome, Edge and Samsung already passed; the bar-folded row is the test on all five.

🤖 Generated with Claude Code

…changes width

The client view takes its bounds from the frame view only when the non-client view above both
lays out. On Brave the page stayed under the appbar after it showed again, as only the frame view
and the browser view were laid out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@b-re-w
b-re-w merged commit 6723f90 into develop Nov 9, 2026
3 checks passed
@b-re-w
b-re-w deleted the feat/client-relayout branch November 9, 2026 20:53
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