Skip to content

Commit

Permalink
feat: scroll when clicking the scrollbar
Browse files Browse the repository at this point in the history
  • Loading branch information
kokoISnoTarget committed Apr 13, 2024
1 parent af3c26b commit bfc7672
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -387,9 +387,7 @@ impl Inlyne {
.contains(position.into())
&& mouse_down)
{
let scrollbar_height = (screen_size.1
/ self.renderer.positioner.reserved_height)
* screen_size.1;
let scrollbar_height = self.renderer.scrollbar_height();
if scrollbar_held.is_none() {
if Rect::new(
(
Expand Down Expand Up @@ -438,6 +436,21 @@ impl Inlyne {
ElementState::Pressed => {
// Try to click a link
let screen_size = self.renderer.screen_size();

let y = mouse_position.1 - self.renderer.scroll_y;
if Rect::new(
(screen_size.0 - DEFAULT_MARGIN / 4., 0.),
(DEFAULT_MARGIN / 4., screen_size.1),
).contains((mouse_position.0, y)) {
let scrollbar_height = self.renderer.scrollbar_height();

let target_scroll = ((y - scrollbar_height / 2.) / screen_size.1)
* self.renderer.positioner.reserved_height;

self.renderer.set_scroll_y(target_scroll);
self.window.request_redraw();
}

if let Some(hoverable) = Self::find_hoverable(
&mut self.renderer.text_system,
&mut self.renderer.positioner.taffy,
Expand Down
4 changes: 4 additions & 0 deletions src/renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,10 @@ impl Renderer {
Ok(())
}

pub fn scrollbar_height(&self) -> f32 {
(self.screen_height() / self.positioner.reserved_height) * self.screen_height()
}

fn render_elements(
&mut self,
elements: &[Positioned<Element>],
Expand Down

0 comments on commit bfc7672

Please sign in to comment.