Rémi Bernon (@rbernon) commented about dlls/win32u/input.c:
+ + pointer->id = id; + list_add_tail( &thread_data->known_pointers, &pointer->entry ); + + return pointer; +} + +static POINT pixel_to_himetric( POINT px ) +{ + UINT dpi = HIMETRIC / get_system_dpi(); + + return (POINT) { + .x = px.x * dpi, + .y = px.y * dpi, + }; +} Same here, you will have rounding errors. Might be better to use map_dpi_point. Also I think the message location is in thread DPI when calling this, not system DPI. Note that this might even be incorrect, and maybe it would be better to convert from raw physical to HIMETRIC, which tests can tell, but there's also then physical to virtual monitor rect mapping to consider.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10649#note_136265