1
0
Fork 0
forked from wry/wry

tree: use discrete steps when scrolling containers

This commit is contained in:
Julian Orth 2022-05-07 17:30:54 +02:00
parent fca7c7e1d2
commit b7831e1019

View file

@ -1154,15 +1154,18 @@ impl Node for ContainerNode {
Some(mc) => mc, Some(mc) => mc,
_ => return, _ => return,
}; };
let scroll = match event.axis[VERTICAL_SCROLL as usize].get() { let discrete = if let Some(d) = event.discrete[VERTICAL_SCROLL as usize].get() {
Some(s) => s, self.scroll.set(0.0);
_ => return, d
} else if let Some(scroll) = event.axis[VERTICAL_SCROLL as usize].get() {
let mut scroll = self.scroll.get() + scroll.to_f64();
let discrete = (scroll / PX_PER_SCROLL).round();
scroll -= discrete * PX_PER_SCROLL;
self.scroll.set(scroll);
discrete as i32
} else {
return;
}; };
let mut scroll = self.scroll.get() + scroll.to_f64();
let discrete = (scroll / PX_PER_SCROLL).round();
scroll -= discrete * PX_PER_SCROLL;
self.scroll.set(scroll);
let discrete = discrete as i32;
let mut new_mc = cur_mc.clone(); let mut new_mc = cur_mc.clone();
for _ in 0..discrete.abs() { for _ in 0..discrete.abs() {
let new = if discrete < 0 { let new = if discrete < 0 {