Repository navigation
Conversation
Guard .ignoresSafeArea(.container, edges: .top) so it only applies in windowed minimal mode, not fullscreen. In fullscreen the safe area computation changes and causes Bonsplit tabs to disappear. Pass isFullScreen from ContentView to WorkspaceContentView and skip the ignoresSafeArea modifier when the window is fullscreen. Fixes manaflow-ai#2317
|
@solssak is attempting to deploy a commit to the Manaflow Team on Vercel. A member of the Team first needs to authorize it. |
📝 WalkthroughWalkthroughThe changes forward full-screen state from Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR fixes a visual regression where the horizontal tab bar (Bonsplit tabs) disappears when both minimal mode and fullscreen are active simultaneously. The root cause was that The fix is minimal and well-scoped: Key changes:
Notes:
Confidence Score: 5/5Safe to merge — the change is a two-line, well-contained fix with no P0 or P1 issues. The fix correctly threads an already-reliable No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[WorkspaceContentView body] --> B{isMinimalMode?}
B -- No --> D[render bonsplitView]
B -- Yes --> C{isFullScreen?}
C -- "Yes: fullscreen, skip modifier" --> D
C -- "No: windowed, apply modifier" --> E["bonsplitView\n.ignoresSafeArea(.container, edges: .top)"]
Reviews (1): Last reviewed commit: "fix: preserve horizontal tab bar in full..." | Re-trigger Greptile |
Three issues caused the Bonsplit horizontal tab bar to be hidden when entering fullscreen with minimal mode enabled: 1. ignoresSafeArea(.container, edges: .top) was applied unconditionally in minimal mode, pushing content behind the fullscreen menu bar area. Now gated on !isFullScreen. 2. effectiveTitlebarPadding returned -titlebarPadding in minimal mode regardless of fullscreen state. In fullscreen there is no native titlebar to compensate for, so the negative offset pushed content off the top of the screen. Now returns 0 in fullscreen. 3. Traffic light leading inset (80px) was applied in fullscreen minimal mode even though there are no traffic light buttons. Now gated on !isFullScreen, and syncTrafficLightInset is called on fullscreen enter/exit. Closes #2317 Based on #2341
Three issues caused the Bonsplit horizontal tab bar to be hidden when entering fullscreen with minimal mode enabled: 1. ignoresSafeArea(.container, edges: .top) was applied unconditionally in minimal mode, pushing content behind the fullscreen menu bar area. Now gated on !isFullScreen. 2. effectiveTitlebarPadding returned -titlebarPadding in minimal mode regardless of fullscreen state. In fullscreen there is no native titlebar to compensate for, so the negative offset pushed content off the top of the screen. Now returns 0 in fullscreen. 3. Traffic light leading inset (80px) was applied in fullscreen minimal mode even though there are no traffic light buttons. Now gated on !isFullScreen, and syncTrafficLightInset is called on fullscreen enter/exit. Closes #2317 Based on #2341 Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
|
Thank you for the contribution! Your
All three fixes are now merged to main. |
Three issues caused the Bonsplit horizontal tab bar to be hidden when entering fullscreen with minimal mode enabled: 1. ignoresSafeArea(.container, edges: .top) was applied unconditionally in minimal mode, pushing content behind the fullscreen menu bar area. Now gated on !isFullScreen. 2. effectiveTitlebarPadding returned -titlebarPadding in minimal mode regardless of fullscreen state. In fullscreen there is no native titlebar to compensate for, so the negative offset pushed content off the top of the screen. Now returns 0 in fullscreen. 3. Traffic light leading inset (80px) was applied in fullscreen minimal mode even though there are no traffic light buttons. Now gated on !isFullScreen, and syncTrafficLightInset is called on fullscreen enter/exit. Closes manaflow-ai#2317 Based on manaflow-ai#2341 Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
Three issues caused the Bonsplit horizontal tab bar to be hidden when entering fullscreen with minimal mode enabled: 1. ignoresSafeArea(.container, edges: .top) was applied unconditionally in minimal mode, pushing content behind the fullscreen menu bar area. Now gated on !isFullScreen. 2. effectiveTitlebarPadding returned -titlebarPadding in minimal mode regardless of fullscreen state. In fullscreen there is no native titlebar to compensate for, so the negative offset pushed content off the top of the screen. Now returns 0 in fullscreen. 3. Traffic light leading inset (80px) was applied in fullscreen minimal mode even though there are no traffic light buttons. Now gated on !isFullScreen, and syncTrafficLightInset is called on fullscreen enter/exit. Closes manaflow-ai/cmux#2317 Based on manaflow-ai/cmux#2341 Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
Fixes #2317 — Horizontal tab bar (Bonsplit tabs) disappears when minimal mode is enabled and the window enters fullscreen.
Problem
In
WorkspaceContentView,.ignoresSafeArea(.container, edges: .top)is applied unconditionally whenever minimal mode is active. In fullscreen, the safe area computation changes, causing the Bonsplit tab bar to be pushed out of view.Fix
Pass
isFullScreenfromContentViewtoWorkspaceContentViewand skip the.ignoresSafeAreamodifier when fullscreen is active. This preserves the intended minimal mode behavior in windowed mode while keeping tabs visible in fullscreen.Changes
Sources/WorkspaceContentView.swift: AddisFullScreenproperty; guard.ignoresSafeAreawith!isFullScreenSources/ContentView.swift: PassisFullScreentoWorkspaceContentViewat the call siteTesting
Also verified windowed minimal mode still hides the titlebar area correctly (no regression).
Regression test: skipped (intentional)
Per
CLAUDE.mdtest quality policy: this fix changes how a SwiftUI layout modifier (.ignoresSafeArea) is conditionally applied based on window fullscreen state. The bug is purely visual — it depends on AppKit's safe area computation during fullscreen transitions, which cannot be exercised through unit or integration tests. No meaningful behavioral or artifact-level test is practical for this change.