Skip to content

Commit

Permalink
Make it easier to grab the handle of a floating scroll bar (emilk#4754)
Browse files Browse the repository at this point in the history
Should solve rerun-io/rerun#6700
  • Loading branch information
emilk authored and hacknus committed Oct 30, 2024
1 parent f8740a4 commit a4a7542
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
9 changes: 7 additions & 2 deletions crates/egui/src/containers/scroll_area.rs
Original file line number Diff line number Diff line change
Expand Up @@ -966,17 +966,22 @@ impl Prepared {
// top/bottom of a horizontal scroll (d==0).
// left/rigth of a vertical scroll (d==1).
let mut cross = if scroll_style.floating {
// The bounding rect of a fully visible bar.
// When we hover this area, we should show the full bar:
let max_bar_rect = if d == 0 {
outer_rect.with_min_y(outer_rect.max.y - scroll_style.allocated_width())
outer_rect.with_min_y(outer_rect.max.y - outer_margin - scroll_style.bar_width)
} else {
outer_rect.with_min_x(outer_rect.max.x - scroll_style.allocated_width())
outer_rect.with_min_x(outer_rect.max.x - outer_margin - scroll_style.bar_width)
};

let is_hovering_bar_area = is_hovering_outer_rect
&& ui.rect_contains_pointer(max_bar_rect)
|| state.scroll_bar_interaction[d];

let is_hovering_bar_area_t = ui
.ctx()
.animate_bool_responsive(id.with((d, "bar_hover")), is_hovering_bar_area);

let width = show_factor
* lerp(
scroll_style.floating_width..=scroll_style.bar_width,
Expand Down
2 changes: 1 addition & 1 deletion crates/egui/src/style.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1163,9 +1163,9 @@ impl Default for Spacing {
impl Default for Interaction {
fn default() -> Self {
Self {
interact_radius: 5.0,
resize_grab_radius_side: 5.0,
resize_grab_radius_corner: 10.0,
interact_radius: 5.0,
show_tooltips_only_when_still: true,
tooltip_delay: 0.5,
tooltip_grace_time: 0.2,
Expand Down

0 comments on commit a4a7542

Please sign in to comment.