Open Bug 1627365 Opened 3 months ago

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

Categories

(Core :: Widget, task)

task
Not set
normal

Tracking

()

People

(Reporter: botond, Unassigned)

References

Details

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.

You need to log in before you can comment on or make changes to this bug.