Move scrolling percentage logic to separate function

This commit is contained in:
Friz64 2019-11-30 17:49:42 +01:00
parent f8fac432c6
commit c12ba14dda

View file

@ -102,6 +102,17 @@ impl<'a, Message, Renderer> Scrollable<'a, Message, Renderer> {
}
}
fn scroll_percentage(
bounds: Rectangle,
scroller_bounds: Rectangle,
scroller_grabbed_at: f32,
cursor_position: Point,
) -> f32 {
(cursor_position.y + bounds.y
- scroller_bounds.height * scroller_grabbed_at)
/ (bounds.height - scroller_bounds.height)
}
impl<'a, Message, Renderer> Widget<Message, Renderer>
for Scrollable<'a, Message, Renderer>
where
@ -195,12 +206,13 @@ where
}
};
let scroll_percentage = (cursor_position.y + bounds.y
- scroller_bounds.height * scroller_grabbed_at)
/ (bounds.height - scroller_bounds.height);
self.state.scroll_to(
scroll_percentage,
scroll_percentage(
bounds,
scroller_bounds,
scroller_grabbed_at,
cursor_position,
),
bounds,
content_bounds,
);
@ -216,12 +228,13 @@ where
if let Some(scroller_grabbed_at) =
self.state.scroller_grabbed_at
{
let scroll_percentage = (cursor_position.y + bounds.y
- scroller_bounds.height * scroller_grabbed_at)
/ (bounds.height - scroller_bounds.height);
self.state.scroll_to(
scroll_percentage,
scroll_percentage(
bounds,
scroller_bounds,
scroller_grabbed_at,
cursor_position,
),
bounds,
content_bounds,
);