Add auto-hide option to toolbars#315
Conversation
Port the auto-hide toolbar feature: each toolbar edge can slide out of
view, leaving a small hover hot zone that reveals it again. Toggled per
edge (left/right/bottom/top) via the toolbar context menu, backed by the
AlchemyToolbarAutoHide{Left,Right,Bottom,Top} settings (default off).
Adapted for Alchemy: covers the extra top toolbar, and reuses the
existing LLCenterLayoutPanel reshape -> setToolbarRect snap-rect path
(keeping the parent panel full-sized so floaters don't jump as the bar
slides) instead of porting the upstream reportReservedToolbarRect.
Toolbars stay fully revealed while the toybox (toolbar buttons) floater
is open or a button is being dragged, and a fully hidden toolbar stops
drawing its buttons.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughFour persisted boolean settings ( ChangesToolbar Auto-Hide Slide Animation
Sequence DiagramsequenceDiagram
participant User
participant ContextMenu as Toolbars Popup Menu
participant Settings as AlchemyToolbarAutoHide*
participant draw as LLToolBarView::draw()
participant updateAutoHide as updateAutoHide()
participant LLLayoutPanel
User->>ContextMenu: click "Auto-hide Left"
ContextMenu->>Settings: ToggleControl AlchemyToolbarAutoHideLeft
draw->>updateAutoHide: called each frame
updateAutoHide->>Settings: getAutoHideEnabled(TOOLBAR_LEFT)
Settings-->>updateAutoHide: true
updateAutoHide->>updateAutoHide: isMouseInRevealZone check
updateAutoHide->>updateAutoHide: interpolate visible_dim toward 0 (hidden)
draw->>draw: applyAutoHideOffset(TOOLBAR_LEFT)
draw->>LLLayoutPanel: setVisible(false) when fully_hidden
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
Toggled per edge (left/right/bottom/top) via the toolbar context menu, backed by the
AlchemyToolbarAutoHide{Left,Right,Bottom,Top}settings (default off).Skips rendering while completely hidden.
CleanShot.2026-06-14.at.9.00.47.mp4