From: Sungjin Park Date: Tue, 25 Apr 2023 11:38:25 +0000 (+0900) Subject: e_input_evdev: modified to send pointer relative motion event when required X-Git-Tag: accepted/tizen/7.0/unified/20230502.051241~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=28c3d3b9738ca808cd18d9754f080b65715ff96b;p=platform%2Fupstream%2Fenlightenment.git e_input_evdev: modified to send pointer relative motion event when required Change-Id: I15850efd519d0481ad260b836d08ec844e9d00ab Signed-off-by: Sungjin Park --- diff --git a/src/bin/e_input_evdev.c b/src/bin/e_input_evdev.c index 5b52b0a4da..438e7afd0d 100644 --- a/src/bin/e_input_evdev.c +++ b/src/bin/e_input_evdev.c @@ -771,10 +771,19 @@ _e_input_pointer_motion_post(E_Input_Evdev *edev) _device_pointer_motion(edev, NULL); } +static void +_device_pointer_relative_motion_send(double dx[2], double dy[2], uint64_t time_us) +{ + e_input_relative_motion_cb func = e_input_relative_motion_handler_get(); + if (func) func(dx, dy, time_us); +} + static void _device_handle_pointer_motion(struct libinput_device *device, struct libinput_event_pointer *event) { E_Input_Evdev *edev; + double delta_x[2]; /* delta_x[0] for accelerated, delta_x[1] for unaccelerated */ + double delta_y[2]; /* delta_y[0] for accelerated, delta_y[1] for unaccelerated */ double dx, dy, temp; if (!(edev = libinput_device_get_user_data(device))) @@ -782,15 +791,20 @@ _device_handle_pointer_motion(struct libinput_device *device, struct libinput_ev return; } + delta_x[0] = libinput_event_pointer_get_dx(event); + delta_x[1] = libinput_event_pointer_get_dx_unaccelerated(event); + delta_y[0] = libinput_event_pointer_get_dy(event); + delta_y[1] = libinput_event_pointer_get_dy_unaccelerated(event); + if (edev->disable_acceleration) { - dx = libinput_event_pointer_get_dx_unaccelerated(event); - dy = libinput_event_pointer_get_dy_unaccelerated(event); + dx = delta_x[1]; + dy = delta_y[1]; } else { - dx = libinput_event_pointer_get_dx(event); - dy = libinput_event_pointer_get_dy(event); + dx = delta_x[0]; + dy = delta_y[0]; } if (edev->seat->ptr.swap) @@ -825,6 +839,8 @@ _device_handle_pointer_motion(struct libinput_device *device, struct libinput_ev return; } + _device_pointer_relative_motion_send(&delta_x[0], &delta_y[0], + libinput_event_pointer_get_time_usec(event)); _device_pointer_motion(edev, event); }