diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-11-10 09:14:22 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-11-10 09:14:22 +0300 |
| commit | 1951d2a9f262196a706f2645efb18dac3c4d6839 (patch) | |
| tree | 3bd3237a22f516498eed5f8d84acdeb4ee3317bd | |
| parent | 9d8f640503819ff1905c9040d3c7910a50400bbd (diff) | |
| download | niri-1951d2a9f262196a706f2645efb18dac3c4d6839.tar.gz niri-1951d2a9f262196a706f2645efb18dac3c4d6839.tar.bz2 niri-1951d2a9f262196a706f2645efb18dac3c4d6839.zip | |
Fix scrolling not working with missing mouse config
| -rw-r--r-- | niri-config/src/lib.rs | 12 | ||||
| -rw-r--r-- | src/input/mod.rs | 7 |
2 files changed, 10 insertions, 9 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 76f892cb..ceeb36b8 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -188,8 +188,8 @@ pub struct Touchpad { pub disabled_on_external_mouse: bool, #[knuffel(child)] pub middle_emulation: bool, - #[knuffel(child, unwrap(argument), default = FloatOrInt(1.0))] - pub scroll_factor: FloatOrInt<0, 100>, + #[knuffel(child, unwrap(argument))] + pub scroll_factor: Option<FloatOrInt<0, 100>>, } #[derive(knuffel::Decode, Debug, Default, PartialEq)] @@ -210,8 +210,8 @@ pub struct Mouse { pub left_handed: bool, #[knuffel(child)] pub middle_emulation: bool, - #[knuffel(child, unwrap(argument), default = FloatOrInt(1.0))] - pub scroll_factor: FloatOrInt<0, 100>, + #[knuffel(child, unwrap(argument))] + pub scroll_factor: Option<FloatOrInt<0, 100>>, } #[derive(knuffel::Decode, Debug, Default, PartialEq)] @@ -3183,7 +3183,7 @@ mod tests { left_handed: false, disabled_on_external_mouse: true, middle_emulation: false, - scroll_factor: FloatOrInt(0.9), + scroll_factor: Some(FloatOrInt(0.9)), }, mouse: Mouse { off: false, @@ -3194,7 +3194,7 @@ mod tests { scroll_button: Some(273), left_handed: false, middle_emulation: true, - scroll_factor: FloatOrInt(0.2), + scroll_factor: Some(FloatOrInt(0.2)), }, trackpoint: Trackpoint { off: true, diff --git a/src/input/mod.rs b/src/input/mod.rs index 9c668318..3cbb3983 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -1882,10 +1882,11 @@ impl State { } let scroll_factor = match source { - AxisSource::Wheel => self.niri.config.borrow().input.mouse.scroll_factor.0, - AxisSource::Finger => self.niri.config.borrow().input.touchpad.scroll_factor.0, - _ => 1.0, + AxisSource::Wheel => self.niri.config.borrow().input.mouse.scroll_factor, + AxisSource::Finger => self.niri.config.borrow().input.touchpad.scroll_factor, + _ => None, }; + let scroll_factor = scroll_factor.map(|x| x.0).unwrap_or(1.); let horizontal_amount = horizontal_amount.unwrap_or_else(|| { // Winit backend, discrete scrolling. |
