autocommit 2022-04-30 13:45:20 CEST
This commit is contained in:
parent
4e717ecef8
commit
3d4a6b21f3
26 changed files with 340 additions and 60 deletions
|
|
@ -15,6 +15,7 @@ use {
|
|||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
use crate::fixed::Fixed;
|
||||
|
||||
macro_rules! unpack {
|
||||
($slf:expr, $ev:expr) => {{
|
||||
|
|
@ -148,7 +149,7 @@ impl MetalBackend {
|
|||
dev.event(InputEvent::AxisDiscrete(scroll_discrete as _, sa));
|
||||
scroll = PX_PER_SCROLL * scroll_discrete;
|
||||
}
|
||||
dev.event(InputEvent::Axis(scroll.into(), sa));
|
||||
dev.event(InputEvent::Axis(Fixed::from_f64(scroll), sa));
|
||||
}
|
||||
}
|
||||
dev.event(InputEvent::Frame);
|
||||
|
|
@ -174,10 +175,20 @@ impl MetalBackend {
|
|||
let (event, dev) = unpack!(self, event, pointer_event);
|
||||
let mut dx = event.dx();
|
||||
let mut dy = event.dy();
|
||||
let mut dx_unaccelerated = event.dx_unaccelerated();
|
||||
let mut dy_unaccelerated = event.dy_unaccelerated();
|
||||
if let Some(matrix) = dev.transform_matrix.get() {
|
||||
dx = matrix[0][0] * dx + matrix[0][1] * dy;
|
||||
dy = matrix[1][0] * dx + matrix[1][1] * dy;
|
||||
dx_unaccelerated = matrix[0][0] * dx_unaccelerated + matrix[0][1] * dy_unaccelerated;
|
||||
dy_unaccelerated = matrix[1][0] * dx_unaccelerated + matrix[1][1] * dy_unaccelerated;
|
||||
}
|
||||
dev.event(InputEvent::Motion(dx.into(), dy.into()));
|
||||
dev.event(InputEvent::Motion {
|
||||
time_usec: event.time_usec(),
|
||||
dx: Fixed::from_f64(dx),
|
||||
dy: Fixed::from_f64(dy),
|
||||
dx_unaccelerated: Fixed::from_f64(dx_unaccelerated),
|
||||
dy_unaccelerated: Fixed::from_f64(dy_unaccelerated),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -761,7 +761,7 @@ impl XBackend {
|
|||
};
|
||||
seat.mouse_event(InputEvent::AxisSource(AxisSource::Wheel));
|
||||
seat.mouse_event(InputEvent::AxisDiscrete(val, axis));
|
||||
seat.mouse_event(InputEvent::Axis((val as f64 * PX_PER_SCROLL).into(), axis));
|
||||
seat.mouse_event(InputEvent::Axis(Fixed::from_f64(val as f64 * PX_PER_SCROLL), axis));
|
||||
seat.mouse_event(InputEvent::Frame);
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue