diff options
Diffstat (limited to 'widget')
| -rw-r--r-- | widget/src/slider.rs | 34 | ||||
| -rw-r--r-- | widget/src/vertical_slider.rs | 34 | 
2 files changed, 36 insertions, 32 deletions
diff --git a/widget/src/slider.rs b/widget/src/slider.rs index 130c9bf3..5d0a363a 100644 --- a/widget/src/slider.rs +++ b/widget/src/slider.rs @@ -288,22 +288,6 @@ 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) = @@ -340,6 +324,24 @@ where                      return event::Status::Captured;                  }              } +            Event::Mouse(mouse::Event::WheelScrolled { delta }) +                if state.keyboard_modifiers.control() => +            { +                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::Keyboard(keyboard::Event::KeyPressed { key, .. }) => {                  if cursor.position_over(layout.bounds()).is_some() {                      match key { diff --git a/widget/src/vertical_slider.rs b/widget/src/vertical_slider.rs index 5a3519f4..f8f4b4a3 100644 --- a/widget/src/vertical_slider.rs +++ b/widget/src/vertical_slider.rs @@ -291,22 +291,6 @@ 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) = @@ -345,6 +329,24 @@ where                      return event::Status::Captured;                  }              } +            Event::Mouse(mouse::Event::WheelScrolled { delta }) +                if state.keyboard_modifiers.control() => +            { +                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::Keyboard(keyboard::Event::KeyPressed { key, .. }) => {                  if cursor.position_over(layout.bounds()).is_some() {                      match key {  | 
