aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-11-10 09:14:22 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-11-10 09:14:22 +0300
commit1951d2a9f262196a706f2645efb18dac3c4d6839 (patch)
tree3bd3237a22f516498eed5f8d84acdeb4ee3317bd
parent9d8f640503819ff1905c9040d3c7910a50400bbd (diff)
downloadniri-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.rs12
-rw-r--r--src/input/mod.rs7
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.