Size the taskbar flyout to its content - #439
Conversation
The native taskbar-widget flyout sized its window with Math.max(174, section.scrollHeight). Everything outside the .taskbar-flyout section is transparent, so whenever the content measured under 174px the extra window height showed the desktop as a bare strip under the "Open Ceiling" row. The shortest real layout hits it: header + one Unavailable row + footer is 163px, i.e. one provider whose last sync failed. Drop the floor and size to the measured section. 174 stays only as a fallback for the no-layout case, matching FLYOUT_INITIAL_HEIGHT on the Rust side, and can never inflate a real measurement. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe taskbar flyout now sizes its window to the measured section content. It uses 174 pixels only when no layout measurement exists, instead of enforcing 174 pixels as a minimum height. ChangesTaskbar flyout sizing
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Merge Risk: ⚪ Minimal · up to The taskbar flyout now fits its measured content rather than retaining unused transparent space, while preserving the initial fallback height before layout is available. No current merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ 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 |
While working on the repo my Claude auth got logged out, and I caught this visual bug in the taskbar-widget flyout: a bare strip of desktop showing under the "Open Ceiling" row.
Summary
The native taskbar-widget flyout (TaskbarFlyout.tsx) sized its window with Math.max(174, section.scrollHeight). Everything outside the .taskbar-flyout section is transparent (html, body, #root and .taskbar-flyout-frame are all background: transparent !important), so whenever the content measured under 174px the extra window height showed the desktop as a bare strip under the "Open Ceiling" row.
The shortest real layout hits it: header (52px) + providers padding (8px) + one Unavailable row (58px) + footer (43px) = 163px — i.e. exactly one provider whose last sync failed, which is what a signed-out Claude looks like. As soon as the row grows meters the content passes 174 and the strip vanishes, which is why it's easy to miss.
This drops the floor and sizes the window to the measured section. 174 stays only as a fallback for the no-layout case (matching FLYOUT_INITIAL_HEIGHT in shell/flyout_window.rs, which is unchanged) and can never inflate a real measurement.
Related issue
None — caught while working on the repo.
Affected areas
Validation
UI / tray proof
Before (strip under the footer is the desktop showing through the window):
After (window ends at the panel; what's below is the window's drop shadow on the wallpaper):
Notes for reviewers
Note
Size
TaskbarFlyoutcomponent to its measured contentUpdates the resize effect in TaskbarFlyout.tsx to use the measured scroll height when it is positive. Adds the
FLYOUT_FALLBACK_HEIGHTconstant (174px) and applies it only when the content cannot be measured or has zero height. Removes the previous unconditional 174px minimum height, allowing the flyout to shrink below 174px when content is smaller.Macroscope summarized 48cd298.
Summary by CodeRabbit