Enable two-axis scrolling for dashboard widgets #669
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
body_height.Description
egui::ScrollArea::vertical()withegui::ScrollArea::both()and retained.auto_shrink([false; 2])and.max_height(body_height)so vertical height is constrained while horizontal overflow is allowed.ui.set_clip_rect(ui.clip_rect().intersect(slot_clip))to ensure slot bounds are respected while allowing horizontal scrolling within the slot.SCROLL_VIEWPORTSandOVERFLOW_RECORDS, anOverflowWidgettest widget,overflow_registry, and helper functionstake_scroll_viewports()/take_overflow_records()to capture viewport and allocated content rectangles.scroll_area_allows_horizontal_and_vertical_overflowwhich renders an oversized widget and asserts that the painted/allocated rect is larger than the scroll viewport and that scrollbars are exposed as expected.Testing
scroll_area_allows_horizontal_and_vertical_overflowto cover two-axis overflow behavior.SCROLL_VISIBILITY_RECORDS.cargo testwas not executed in this rollout).Codex Task