diff --git a/src/ifs/jay_seat_events.rs b/src/ifs/jay_seat_events.rs index e4759f12..81918f93 100644 --- a/src/ifs/jay_seat_events.rs +++ b/src/ifs/jay_seat_events.rs @@ -1,12 +1,11 @@ use { crate::{ - backend::{self, KeyState}, + backend::KeyState, client::Client, fixed::Fixed, ifs::wl_seat::{wl_pointer::PendingScroll, SeatId}, leaks::Tracker, object::Object, - state::DeviceHandlerData, wire::{jay_seat_events::*, JaySeatEventsId}, xkbcommon::ModifierState, }, @@ -83,13 +82,7 @@ impl JaySeatEvents { }); } - pub fn send_axis( - &self, - seat: SeatId, - time_usec: u64, - dev: &DeviceHandlerData, - ps: &PendingScroll, - ) { + pub fn send_axis(&self, seat: SeatId, time_usec: u64, ps: &PendingScroll) { if let Some(source) = ps.source.get() { self.client.event(AxisSource { self_id: self.id, @@ -103,13 +96,8 @@ impl JaySeatEvents { dist, axis: axis as _, }); - let px = (dist as f64 / backend::AXIS_120 as f64) * dev.px_per_scroll_wheel.get(); - self.client.event(AxisPx { - self_id: self.id, - dist: Fixed::from_f64(px), - axis: axis as _, - }); - } else if let Some(dist) = ps.px[axis].get() { + } + if let Some(dist) = ps.px[axis].get() { self.client.event(AxisPx { self_id: self.id, dist, diff --git a/src/ifs/wl_seat/event_handling.rs b/src/ifs/wl_seat/event_handling.rs index 5c3b49ac..700d369a 100644 --- a/src/ifs/wl_seat/event_handling.rs +++ b/src/ifs/wl_seat/event_handling.rs @@ -564,12 +564,7 @@ impl WlSeatGlobal { // Scroll callbacks impl WlSeatGlobal { - pub fn scroll_surface( - &self, - dev: &DeviceHandlerData, - surface: &WlSurface, - event: &PendingScroll, - ) { + pub fn scroll_surface(&self, surface: &WlSurface, event: &PendingScroll) { if let Some(source) = event.source.get() { let since = if source >= WHEEL_TILT { WHEEL_TILT_SINCE_VERSION @@ -588,9 +583,8 @@ impl WlSeatGlobal { } else if p.seat.version >= AXIS_DISCRETE_SINCE_VERSION { p.send_axis_discrete(axis, delta / AXIS_120); } - let px = (delta as f64 / AXIS_120 as f64) * dev.px_per_scroll_wheel.get(); - p.send_axis(time, axis, Fixed::from_f64(px)); - } else if let Some(delta) = event.px[i].get() { + } + if let Some(delta) = event.px[i].get() { p.send_axis(time, axis, delta); } if p.seat.version >= AXIS_STOP_SINCE_VERSION && event.stop[i].get() { diff --git a/src/ifs/wl_seat/pointer_owner.rs b/src/ifs/wl_seat/pointer_owner.rs index 7396991e..7e057ad6 100644 --- a/src/ifs/wl_seat/pointer_owner.rs +++ b/src/ifs/wl_seat/pointer_owner.rs @@ -1,6 +1,6 @@ use { crate::{ - backend::{AxisSource, KeyState, ScrollAxis}, + backend::{AxisSource, KeyState, ScrollAxis, AXIS_120}, fixed::Fixed, ifs::{ ipc, @@ -55,11 +55,17 @@ impl PointerOwnerHolder { pub fn frame(&self, dev: &DeviceHandlerData, seat: &Rc, time_usec: u64) { self.pending_scroll.time_usec.set(time_usec); let pending = self.pending_scroll.take(); + for axis in 0..2 { + if let Some(dist) = pending.v120[axis].get() { + let px = (dist as f64 / AXIS_120 as f64) * dev.px_per_scroll_wheel.get(); + pending.px[axis].set(Some(Fixed::from_f64(px))); + } + } seat.state.for_each_seat_tester(|t| { - t.send_axis(seat.id, time_usec, dev, &pending); + t.send_axis(seat.id, time_usec, &pending); }); if let Some(node) = self.owner.get().axis_node(seat) { - node.node_on_axis_event(dev, seat, &pending); + node.node_on_axis_event(seat, &pending); } } diff --git a/src/ifs/wl_surface.rs b/src/ifs/wl_surface.rs index d89b5b79..76206549 100644 --- a/src/ifs/wl_surface.rs +++ b/src/ifs/wl_surface.rs @@ -32,7 +32,6 @@ use { object::Object, rect::{Rect, Region}, render::Renderer, - state::DeviceHandlerData, tree::{ FindTreeResult, FoundNode, Node, NodeId, NodeVisitor, NodeVisitorBase, OutputNode, ToplevelNode, @@ -1094,13 +1093,8 @@ impl Node for WlSurface { seat.button_surface(&self, time_usec, button, state, serial); } - fn node_on_axis_event( - self: Rc, - dev: &DeviceHandlerData, - seat: &Rc, - event: &PendingScroll, - ) { - seat.scroll_surface(dev, &*self, event); + fn node_on_axis_event(self: Rc, seat: &Rc, event: &PendingScroll) { + seat.scroll_surface(&*self, event); } fn node_on_focus(self: Rc, seat: &Rc) { diff --git a/src/tree.rs b/src/tree.rs index 0162a603..6e31beb6 100644 --- a/src/tree.rs +++ b/src/tree.rs @@ -9,7 +9,6 @@ use { }, rect::Rect, render::Renderer, - state::DeviceHandlerData, utils::numcell::NumCell, xkbcommon::ModifierState, }, @@ -185,13 +184,7 @@ pub trait Node: 'static { let _ = serial; } - fn node_on_axis_event( - self: Rc, - dev: &DeviceHandlerData, - seat: &Rc, - event: &PendingScroll, - ) { - let _ = dev; + fn node_on_axis_event(self: Rc, seat: &Rc, event: &PendingScroll) { let _ = seat; let _ = event; } diff --git a/src/tree/container.rs b/src/tree/container.rs index 9fd9d64c..c210cc40 100644 --- a/src/tree/container.rs +++ b/src/tree/container.rs @@ -9,7 +9,7 @@ use { }, rect::Rect, render::{Renderer, Texture}, - state::{DeviceHandlerData, State}, + state::State, text, tree::{ walker::NodeVisitor, ContainingNode, Direction, FindTreeResult, FoundNode, Node, @@ -1162,12 +1162,7 @@ impl Node for ContainerNode { } } - fn node_on_axis_event( - self: Rc, - _dev: &DeviceHandlerData, - seat: &Rc, - event: &PendingScroll, - ) { + fn node_on_axis_event(self: Rc, seat: &Rc, event: &PendingScroll) { let mut seat_datas = self.seats.borrow_mut(); let seat_data = match seat_datas.get_mut(&seat.id()) { Some(s) => s, diff --git a/src/tree/output.rs b/src/tree/output.rs index f4c7bc69..f18fe2f5 100644 --- a/src/tree/output.rs +++ b/src/tree/output.rs @@ -17,7 +17,7 @@ use { }, rect::Rect, render::{Renderer, Texture}, - state::{DeviceHandlerData, State}, + state::State, text, tree::{ walker::NodeVisitor, Direction, FindTreeResult, FoundNode, Node, NodeId, WorkspaceNode, @@ -577,12 +577,7 @@ impl Node for OutputNode { self.state.tree_changed(); } - fn node_on_axis_event( - self: Rc, - _dev: &DeviceHandlerData, - seat: &Rc, - event: &PendingScroll, - ) { + fn node_on_axis_event(self: Rc, seat: &Rc, event: &PendingScroll) { let steps = match self.scroll.handle(event) { Some(e) => e, _ => return,