Safari’s weird mousemove

The implementation of Safari’s mousemove event differs in a notable way from Chrome and Firefox. After first mouse movement, Safari fires the event on key press of the modifier keys ctrlKey, shiftKey, altKey, and metaKey. For example, the following logs the event name in Safari without mouse movement.

Additionally Safari’s MouseEvent object uses the last known position values (i.e. clientX, clientY), which can create issues. To get around this behavior and ensure the mouse has actually moved, check against the last known position: