diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-23 09:00:55 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-23 09:00:55 +0400 |
| commit | c66319314e2099c2c4f4d05c3d8c1e196ef6bdea (patch) | |
| tree | 31cf77b67abaf7ab7fbbedc7211a58d383345886 /src | |
| parent | b09dbb80c7c507f34e194f2c5420054608cbf732 (diff) | |
| download | niri-c66319314e2099c2c4f4d05c3d8c1e196ef6bdea.tar.gz niri-c66319314e2099c2c4f4d05c3d8c1e196ef6bdea.tar.bz2 niri-c66319314e2099c2c4f4d05c3d8c1e196ef6bdea.zip | |
Fix vertical wheel binds on winit
Diffstat (limited to 'src')
| -rw-r--r-- | src/input.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/input.rs b/src/input.rs index fd19e5c4..c4558cee 100644 --- a/src/input.rs +++ b/src/input.rs @@ -1121,6 +1121,10 @@ impl State { let comp_mod = self.backend.mod_key(); let mods = self.niri.seat.get_keyboard().unwrap().modifier_state(); + // Winit sends scroll events where both directions are set at once, so we can't early + // return after handling just one. + let mut handled = false; + if let Some(v120) = horizontal_amount_v120 { let config = self.niri.config.borrow(); let bindings = &config.binds; @@ -1144,7 +1148,8 @@ impl State { self.handle_bind(left.clone()); } } - return; + + handled = true; } else { self.niri.horizontal_wheel_tracker.reset(); } @@ -1171,11 +1176,16 @@ impl State { self.handle_bind(up.clone()); } } - return; + + handled = true; } else { self.niri.vertical_wheel_tracker.reset(); } } + + if handled { + return; + } } let horizontal_amount = event.amount(Axis::Horizontal).unwrap_or_else(|| { |
