From 2cb787c5bf7d97f7636da605a9e05a5616931042 Mon Sep 17 00:00:00 2001 From: Colin Kinloch Date: Fri, 21 Jul 2023 20:18:30 +0100 Subject: [PATCH] (Wayland) Apply output scale to touch inputs --- input/common/wayland_common.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/input/common/wayland_common.c b/input/common/wayland_common.c index 210b3d571f..de428f8c36 100644 --- a/input/common/wayland_common.c +++ b/input/common/wayland_common.c @@ -332,9 +332,9 @@ static void wl_touch_handle_down(void *data, wl->active_touch_positions[wl->num_active_touches].active = true; wl->active_touch_positions[wl->num_active_touches].id = id; wl->active_touch_positions[wl->num_active_touches].x = (unsigned) - wl_fixed_to_int(x); + wl_fixed_to_int(x * (wl_fixed_t)wl->buffer_scale); wl->active_touch_positions[wl->num_active_touches].y = (unsigned) - wl_fixed_to_int(y); + wl_fixed_to_int(y * (wl_fixed_t)wl->buffer_scale); wl->num_active_touches++; break; } @@ -415,8 +415,10 @@ static void wl_touch_handle_motion(void *data, if ( wl->active_touch_positions[i].active && wl->active_touch_positions[i].id == id) { - wl->active_touch_positions[i].x = (unsigned) wl_fixed_to_int(x); - wl->active_touch_positions[i].y = (unsigned) wl_fixed_to_int(y); + wl->active_touch_positions[i].x = (unsigned) wl_fixed_to_int( + x * (wl_fixed_t)wl->buffer_scale); + wl->active_touch_positions[i].y = (unsigned) wl_fixed_to_int( + y * (wl_fixed_t)wl->buffer_scale); } } }