From: Peter Hutterer Date: Sun, 4 Sep 2022 23:35:23 +0000 (+1000) Subject: filter: don't normalize the const filter approach X-Git-Tag: 1.22.0~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cef91f5b43ddcf01875d16d2e69180f4b71c5bf5;p=platform%2Fupstream%2Flibinput.git filter: don't normalize the const filter approach The filter vs const filter is supposed to be for accelerated vs non-accelerated motion (e.g. pointer motion vs scrolling) - in both cases the returned value is supposed to be in the same coordinate system, just once with an extra accel factor applied. This was broken in the flat and low-dpi profiles: in both of those the accelerated filter does *not* normalize, it merely applies the fixed/adaptive factor. The constant filter normalized however. The result was that on e.g. a 5000dpi mouse the constant motion was 5 times slower than the accelerated motion, even with a factor of 1. Signed-off-by: Peter Hutterer --- diff --git a/src/filter-flat.c b/src/filter-flat.c index 0ee6c922..4fc185ba 100644 --- a/src/filter-flat.c +++ b/src/filter-flat.c @@ -65,10 +65,11 @@ accelerator_filter_noop_flat(struct motion_filter *filter, const struct device_float_coords *unaccelerated, void *data, uint64_t time) { - struct pointer_accelerator_flat *accel = - (struct pointer_accelerator_flat *) filter; - - return normalize_for_dpi(unaccelerated, accel->dpi); + const struct normalized_coords normalized = { + .x = unaccelerated->x, + .y = unaccelerated->y, + }; + return normalized; } static bool diff --git a/src/filter-low-dpi.c b/src/filter-low-dpi.c index ffcf9114..51793b5c 100644 --- a/src/filter-low-dpi.c +++ b/src/filter-low-dpi.c @@ -150,10 +150,11 @@ accelerator_filter_noop(struct motion_filter *filter, const struct device_float_coords *unaccelerated, void *data, uint64_t time) { - struct pointer_accelerator_low_dpi *accel = - (struct pointer_accelerator_low_dpi *) filter; - - return normalize_for_dpi(unaccelerated, accel->dpi); + const struct normalized_coords normalized = { + .x = unaccelerated->x, + .y = unaccelerated->y, + }; + return normalized; } static void