diff --git a/src/video/wayland/SDL_waylandevents.c b/src/video/wayland/SDL_waylandevents.c index 28293c2913..40616df537 100644 --- a/src/video/wayland/SDL_waylandevents.c +++ b/src/video/wayland/SDL_waylandevents.c @@ -2791,11 +2791,14 @@ static void relative_pointer_handle_relative_motion(void *data, double dx_unaccel; double dy_unaccel; + /* Relative pointer event times are in microsecond granularity. */ + const Uint64 timestamp = SDL_US_TO_NS(((Uint64)time_hi << 32) | (Uint64)time_lo); + dx_unaccel = wl_fixed_to_double(dx_unaccel_w); dy_unaccel = wl_fixed_to_double(dy_unaccel_w); if (input->pointer_focus && d->relative_mouse_mode) { - SDL_SendMouseMotion(0, window->sdlwindow, 0, 1, (float)dx_unaccel, (float)dy_unaccel); + SDL_SendMouseMotion(Wayland_GetEventTimestamp(timestamp), window->sdlwindow, 0, 1, (float)dx_unaccel, (float)dy_unaccel); } }