1
0
Fork 0
forked from wry/wry

input: rename axix_smooth to axis_px

This commit is contained in:
Julian Orth 2022-05-27 17:02:44 +02:00
parent 64416d417b
commit 20f0fba553
7 changed files with 18 additions and 21 deletions

View file

@ -176,7 +176,7 @@ pub enum InputEvent {
state: KeyState,
},
AxisSmooth {
AxisPx {
dist: Fixed,
axis: ScrollAxis,
},

View file

@ -151,7 +151,7 @@ impl MetalBackend {
axis,
}
} else {
InputEvent::AxisSmooth {
InputEvent::AxisPx {
dist: Fixed::from_f64(scroll),
axis,
}

View file

@ -195,7 +195,7 @@ impl WlSeatGlobal {
InputEvent::AxisSource { source } => self.pointer_owner.axis_source(source),
InputEvent::Axis120 { dist, axis } => self.pointer_owner.axis_120(dist, axis),
InputEvent::AxisSmooth { dist, axis } => self.pointer_owner.axis_smooth(dist, axis),
InputEvent::AxisPx { dist, axis } => self.pointer_owner.axis_px(dist, axis),
InputEvent::AxisStop { axis } => self.pointer_owner.axis_stop(axis),
InputEvent::AxisFrame { time_usec } => self.pointer_owner.frame(dev, self, time_usec),
}
@ -564,7 +564,7 @@ impl WlSeatGlobal {
}
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.smooth[i].get() {
} else 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() {

View file

@ -44,8 +44,8 @@ impl PointerOwnerHolder {
self.pending_scroll.v120[axis as usize].set(Some(delta));
}
pub fn axis_smooth(&self, delta: Fixed, axis: ScrollAxis) {
self.pending_scroll.smooth[axis as usize].set(Some(delta));
pub fn axis_px(&self, delta: Fixed, axis: ScrollAxis) {
self.pending_scroll.px[axis as usize].set(Some(delta));
}
pub fn axis_stop(&self, axis: ScrollAxis) {

View file

@ -38,7 +38,7 @@ pub const AXIS_VALUE120_SINCE_VERSION: u32 = 8;
#[derive(Default, Debug)]
pub struct PendingScroll {
pub v120: [Cell<Option<i32>>; 2],
pub smooth: [Cell<Option<Fixed>>; 2],
pub px: [Cell<Option<Fixed>>; 2],
pub stop: [Cell<bool>; 2],
pub source: Cell<Option<u32>>,
pub time_usec: Cell<u64>,
@ -51,10 +51,7 @@ impl PendingScroll {
Cell::new(self.v120[0].take()),
Cell::new(self.v120[1].take()),
],
smooth: [
Cell::new(self.smooth[0].take()),
Cell::new(self.smooth[1].take()),
],
px: [Cell::new(self.px[0].take()), Cell::new(self.px[1].take())],
stop: [
Cell::new(self.stop[0].take()),
Cell::new(self.stop[1].take()),

View file

@ -318,9 +318,9 @@ impl TestBackendMouse {
pub fn scroll_px(&self, dy: i32) {
self.common.event(InputEvent::AxisSource {
source: AxisSource::Wheel,
source: AxisSource::Finger,
});
self.common.event(InputEvent::AxisSmooth {
self.common.event(InputEvent::AxisPx {
dist: Fixed::from_int(dy),
axis: ScrollAxis::Vertical,
});

View file

@ -12,31 +12,31 @@ use {
#[derive(Default)]
pub struct Scroller {
v120: Cell<i32>,
smooth: Cell<f64>,
px: Cell<f64>,
}
impl Scroller {
pub fn handle(&self, scroll: &PendingScroll) -> Option<i32> {
let n = if let Some(d) = scroll.v120[VERTICAL_SCROLL as usize].get() {
self.smooth.set(0.0);
self.px.set(0.0);
let mut v120 = self.v120.get() + d;
let discrete = v120 / AXIS_120;
v120 -= discrete * AXIS_120;
self.v120.set(v120);
discrete
} else if let Some(smooth) = scroll.smooth[VERTICAL_SCROLL as usize].get() {
} else if let Some(px) = scroll.px[VERTICAL_SCROLL as usize].get() {
self.v120.set(0);
let mut smooth = self.smooth.get() + smooth.to_f64();
let discrete = (smooth / PX_PER_SCROLL).trunc();
smooth -= discrete * PX_PER_SCROLL;
self.smooth.set(smooth);
let mut px = self.px.get() + px.to_f64();
let discrete = (px / PX_PER_SCROLL).trunc();
px -= discrete * PX_PER_SCROLL;
self.px.set(px);
discrete as _
} else {
0
};
if scroll.stop[VERTICAL_SCROLL as usize].get() {
self.v120.set(0);
self.smooth.set(0.0);
self.px.set(0.0);
}
if n != 0 {
Some(n)