Skip to content

Commit

Permalink
Enable horizontal scrolling without shift modifier
Browse files Browse the repository at this point in the history
Fixes #2359.
  • Loading branch information
woelfman authored and hecrj committed Sep 8, 2024
1 parent c8686c5 commit 0a0ea30
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions widget/src/scrollable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -706,15 +706,29 @@ where

let delta = match delta {
mouse::ScrollDelta::Lines { x, y } => {
// TODO: Configurable speed/friction (?)
let movement = if !cfg!(target_os = "macos") // macOS automatically inverts the axes when Shift is pressed
&& state.keyboard_modifiers.shift()
{
Vector::new(y, x)
} else {
let is_shift_pressed = state.keyboard_modifiers.shift();

// macOS automatically inverts the axes when Shift is pressed
let (x, y) =
if cfg!(target_os = "macos") && is_shift_pressed {
(y, x)
} 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
}
mouse::ScrollDelta::Pixels { x, y } => Vector::new(x, y),
Expand Down

0 comments on commit 0a0ea30

Please sign in to comment.