Bug 235116
| Summary: | Summing up all movementX of mousemove events does not give the total difference in position | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Guillaume <guillaume.brunerie> |
| Component: | UI Events | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | graouts, thorton, webkit-bug-importer, wenson_hsieh |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 15 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Guillaume
The specification of the MouseEvent.movementX/Y properties says that
> All motion data must be delivered via mousemove events such that between any two mouse events earlierEvent and currentEvent the value of currentEvent.screenX-earlierEvent.screenX is equivalent to the sum of all movementX movementY/code> events after earlierEvent, with the exception of when screenX can not be updated because the pointer is clipped by the user agent screen boundaries.
(see https://w3c.github.io/pointerlock/#dom-mouseevent-movementx)
It works perfectly fine in Chrome but does not seem to work as expected in Safari, as soon as I move the mouse I get differences of several hundreds of pixels.
See the following CodePen: https://codepen.io/Latcarf/pen/YzrRvZE
Tested with Safari Version 15.1 (15612.2.9.1.30, 15612), on MacOS Catalina version 10.15.7 (19H1615).
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/87773443>
Wenson Hsieh
`WebPageProxy::handleMouseEvent` drops unhandled platform mousemove events on macOS if the mouse event queue is too backed up…
Maybe that is what's causing this behavior?