Repository navigation
fix(cmux-next): sidebar rows drop hover controls when hover clears during a reload - #21643
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ars during a reload Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Receipt for
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
|
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by |
|
Bead |
…-hover-controls-stick
|
Found 3 test failures on Blacksmith runners: Failures
|
A sidebar workspace row could keep its x, more button and chevron after the pointer left it, so it looked hovered with nothing over it. It happens whenever hover clears during a list reload (any model change, including a workspace switch) or a scroll.
The cause is #21316 ("perf: defer hover layout during sidebar applies"). It made
WorkspaceRowView.hoverChanged()skipneedsLayout = truewhilesuppressHoverEffectsorhoverFollowsScrollis set. The row only shows or hides those controls inlayout(), andSidebarListView.applyclears hover throughupdateHover()inside that suppression window, so the row never laid out again. The fill cleared (it repaints throughneedsDisplay), but the controls stayed. #21543 fixed rows that leave the list, not rows that stay.The row now always asks for layout on a hover change; AppKit folds that into the next pass. The synchronous
layoutSubtreeIfNeeded()and title marquee stay suppressed during scrolls and applies, which was the hitch #21316 was after.Test
WorkspaceRowHoverMotionTests.hoverClearedDuringAReloadHidesTheRowsControlshovers a row, reloads the list with no pointer over it, lays the row out and expects the x hidden. It is committed before the fix (4603042), so the first commit should be red on that test and the head green. Not run locally: the CmuxNext test target needs GhosttyKit, which this checkout doesn't build; CI is the evidence.Changelog
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes sidebar workspace rows keeping their close and menu buttons visible after the pointer leaves during a list reload or scroll.
Written for commit af9bd05. Summary will update on new commits.