Open Bug 1627365 Opened 4 years ago Updated 2 years ago

Make WidgetEvent::mRefPoint floating-point to avoid rounding errors with synthesized events


(Core :: Widget, task)





(Reporter: botond, Unassigned)



As of bug 1556556, WidgetEvent::mRefPoint is stored in visual coordinates, which can include an arbitrary floating-point resolution in the presence of pinch-zooming.

For synthesized events, particularly those generated by tests, the coordinates originate as layout coordinates (e.g. using getBoundingClientRect()) and are therefore round-tripped through visual coordinates before targeting elements inside zoomed content.

The fact that mRefPoint is an IntPoint means this round-tripping can introduce rounding errors. To avoid this, it would be nice to make mRefPoint store floating-point coordinates.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.