Enable mouse wheel scrolling while dragging inside a ScrollArea#7919
Open
rustbasic wants to merge 1 commit intoemilk:mainfrom
Open
Enable mouse wheel scrolling while dragging inside a ScrollArea#7919rustbasic wants to merge 1 commit intoemilk:mainfrom
ScrollArea#7919rustbasic wants to merge 1 commit intoemilk:mainfrom
Conversation
|
Preview available at https://egui-pr-preview.github.io/pr/7919-patch171 View snapshot changes at kitdiff |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Enable mouse wheel scrolling while dragging inside a
ScrollAreaProblem
When the pointer button is held down and a widget inside a
ScrollAreais being dragged (e.g. selecting text inTextEdit), mouse wheel scrolling does not work. This happens becauseScrollAreaonly processes mouse wheel scrolling whenctx.dragged_id().is_none(), i.e. when no widget is currently being dragged.Change
Relax the wheel-scrolling gating condition so that wheel scrolling is allowed whenever the pointer is over the scroll area (or when background-drag scrolling is active), even if another widget is currently being dragged.
Concretely, we replace the
dragged_id().is_none()requirement for the mouse wheel path with:pointer_over_outer = ui.rect_contains_pointer(outer_rect) || is_dragging_backgroundpointer_over_outerto decide whether to apply wheel scrollingResult
ScrollArea(notablyTextEdit).Notes / Potential behavior change
This enables wheel scrolling during any active drag (not only
TextEdit), as long as the pointer is over theScrollArea. If maintainers prefer limiting this to specific widgets (e.g. only text selection), we can follow up with a more targeted approach (e.g. an explicit option/flag).Files changed
scroll_area.rs(wheel scrolling hover gating logic)