From d1a67296fcb2e854778a3baede727b4aa4b00d20 Mon Sep 17 00:00:00 2001 From: Nova Date: Sun, 1 Oct 2023 21:47:13 -0400 Subject: [PATCH] fix: scroll --- src/objects/input/mouse_pointer.rs | 6 ++++-- src/wayland/seat.rs | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/objects/input/mouse_pointer.rs b/src/objects/input/mouse_pointer.rs index e8a491e..4e39e3f 100644 --- a/src/objects/input/mouse_pointer.rs +++ b/src/objects/input/mouse_pointer.rs @@ -21,7 +21,8 @@ use xkbcommon::xkb::{Context, Keymap, FORMAT_TEXT_V1}; struct MouseEvent { select: f32, grab: f32, - scroll: Vec2, + scroll_continuous: Vec2, + scroll_discrete: Vec2, } #[derive(Debug, Clone, Deserialize, Serialize)] @@ -103,7 +104,8 @@ impl MousePointer { } else { 0.0f32 }; - self.mouse_datamap.scroll = vec2(0.0, mouse.scroll_change / 120.0); + self.mouse_datamap.scroll_continuous = vec2(0.0, mouse.scroll_change / 120.0); + self.mouse_datamap.scroll_discrete = vec2(0.0, mouse.scroll_change / 120.0); *self.pointer.datamap.lock() = self.mouse_datamap.to_datamap().ok(); } self.send_keyboard_input(sk); diff --git a/src/wayland/seat.rs b/src/wayland/seat.rs index ea4ef3d..6f255c9 100644 --- a/src/wayland/seat.rs +++ b/src/wayland/seat.rs @@ -210,12 +210,12 @@ impl SurfaceInfo { ) => { if let Some(axis_continuous) = axis_continuous { pointer.axis(0, Axis::HorizontalScroll, axis_continuous.x as f64); - pointer.axis(0, Axis::VerticalScroll, axis_continuous.y as f64); + pointer.axis(0, Axis::VerticalScroll, -axis_continuous.y as f64); } if pointer.version() >= wl_pointer::EVT_AXIS_DISCRETE_SINCE { if let Some(axis_discrete) = axis_discrete { pointer.axis_discrete(Axis::HorizontalScroll, axis_discrete.x as i32); - pointer.axis_discrete(Axis::VerticalScroll, axis_discrete.y as i32); + pointer.axis_discrete(Axis::VerticalScroll, -axis_discrete.y as i32); } } if pointer.version() >= wl_pointer::EVT_AXIS_STOP_SINCE