wayland: Scale accelerated relative pointer coordinates with emulated resolutions

The accelerated relative coordinates are always relative to the desktop resolution, and need to be scaled with emulated fullscreen resolutions for mouse movement to remain stable. Otherwise, pointer speeds will be too fast on emulated resolutions below the desktop resolution, and too slow on those above.
This commit is contained in:
Frank Praznik 2025-03-22 14:35:39 -04:00
parent f52f982b1e
commit 027df89ed3
No known key found for this signature in database
1 changed files with 2 additions and 2 deletions

View File

@ -1025,8 +1025,8 @@ static void relative_pointer_handle_relative_motion(void *data,
dx = wl_fixed_to_double(dx_unaccel_w);
dy = wl_fixed_to_double(dy_unaccel_w);
} else {
dx = wl_fixed_to_double(dx_w);
dy = wl_fixed_to_double(dy_w);
dx = wl_fixed_to_double(dx_w) * window->pointer_scale.x;
dy = wl_fixed_to_double(dy_w) * window->pointer_scale.y;
}
SDL_SendMouseMotion(timestamp, window->sdlwindow, input->pointer_id, true, (float)dx, (float)dy);