slider: handle mouse wheel events

This commit is contained in:
Kiëd Llaentenn 2024-09-02 09:03:48 -04:00
parent 9957481d41
commit 0d298b70d2
2 changed files with 32 additions and 0 deletions

View file

@ -288,6 +288,22 @@ where
};
match event {
Event::Mouse(mouse::Event::WheelScrolled { delta }) => {
if let Some(_) = cursor.position_over(layout.bounds()) {
let delta = match delta {
mouse::ScrollDelta::Lines { x: _, y } => y,
mouse::ScrollDelta::Pixels { x: _, y } => y,
};
if delta < 0.0 {
let _ = decrement(current_value).map(change);
} else {
let _ = increment(current_value).map(change);
}
return event::Status::Captured;
}
}
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
| Event::Touch(touch::Event::FingerPressed { .. }) => {
if let Some(cursor_position) =

View file

@ -291,6 +291,22 @@ where
};
match event {
Event::Mouse(mouse::Event::WheelScrolled { delta }) => {
if let Some(_) = cursor.position_over(layout.bounds()) {
let delta = match delta {
mouse::ScrollDelta::Lines { x: _, y } => y,
mouse::ScrollDelta::Pixels { x: _, y } => y,
};
if delta < 0.0 {
let _ = decrement(current_value).map(change);
} else {
let _ = increment(current_value).map(change);
}
return event::Status::Captured;
}
}
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
| Event::Touch(touch::Event::FingerPressed { .. }) => {
if let Some(cursor_position) =