metal: don't apply transformation matrix to unaccelerated deltas
This commit is contained in:
parent
9dc58129b6
commit
df02fcf551
1 changed files with 2 additions and 8 deletions
|
|
@ -227,24 +227,18 @@ impl MetalBackend {
|
||||||
let (event, dev) = unpack!(self, event, pointer_event);
|
let (event, dev) = unpack!(self, event, pointer_event);
|
||||||
let mut dx = event.dx();
|
let mut dx = event.dx();
|
||||||
let mut dy = event.dy();
|
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() {
|
if let Some(matrix) = dev.transform_matrix.get() {
|
||||||
(dx, dy) = (
|
(dx, dy) = (
|
||||||
matrix[0][0] * dx + matrix[0][1] * dy,
|
matrix[0][0] * dx + matrix[0][1] * dy,
|
||||||
matrix[1][0] * dx + matrix[1][1] * dy,
|
matrix[1][0] * dx + matrix[1][1] * dy,
|
||||||
);
|
);
|
||||||
(dx_unaccelerated, dy_unaccelerated) = (
|
|
||||||
matrix[0][0] * dx_unaccelerated + matrix[0][1] * dy_unaccelerated,
|
|
||||||
matrix[1][0] * dx_unaccelerated + matrix[1][1] * dy_unaccelerated,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
dev.event(InputEvent::Motion {
|
dev.event(InputEvent::Motion {
|
||||||
time_usec: event.time_usec(),
|
time_usec: event.time_usec(),
|
||||||
dx: Fixed::from_f64(dx),
|
dx: Fixed::from_f64(dx),
|
||||||
dy: Fixed::from_f64(dy),
|
dy: Fixed::from_f64(dy),
|
||||||
dx_unaccelerated: Fixed::from_f64(dx_unaccelerated),
|
dx_unaccelerated: Fixed::from_f64(event.dx_unaccelerated()),
|
||||||
dy_unaccelerated: Fixed::from_f64(dy_unaccelerated),
|
dy_unaccelerated: Fixed::from_f64(event.dy_unaccelerated()),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue