Merge pull request #2392 from woelfman/fix-horizontal-scroll

Enable horizontal scrolling without shift modifier
This commit is contained in:
Héctor Ramón 2024-09-08 19:11:48 +02:00 committed by GitHub
commit 630f3525dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -706,15 +706,29 @@ where
let delta = match delta { let delta = match delta {
mouse::ScrollDelta::Lines { x, y } => { mouse::ScrollDelta::Lines { x, y } => {
// TODO: Configurable speed/friction (?) let is_shift_pressed = state.keyboard_modifiers.shift();
let movement = if !cfg!(target_os = "macos") // macOS automatically inverts the axes when Shift is pressed
&& state.keyboard_modifiers.shift() // macOS automatically inverts the axes when Shift is pressed
{ let (x, y) =
Vector::new(y, x) if cfg!(target_os = "macos") && is_shift_pressed {
} else { (y, x)
Vector::new(x, y) } else {
(x, y)
};
let is_vertical = match self.direction {
Direction::Vertical(_) => true,
Direction::Horizontal(_) => false,
Direction::Both { .. } => !is_shift_pressed,
}; };
let movement = if is_vertical {
Vector::new(x, y)
} else {
Vector::new(y, x)
};
// TODO: Configurable speed/friction (?)
movement * 60.0 movement * 60.0
} }
mouse::ScrollDelta::Pixels { x, y } => Vector::new(x, y), mouse::ScrollDelta::Pixels { x, y } => Vector::new(x, y),