-
-
Notifications
You must be signed in to change notification settings - Fork 6k
Description
Steps to reproduce
Steps to reproduce the behavior:
- set up a basic map, with a control that has a button in it, which listens for click events and posts the events to the console
- click the button in the control using Safari on a Mac
- see two click events in the console, one with
isTrusted:true
and another withisTrusted:false
attributes
(Using 'force touch' to click the button on a trackpad results in only a single click event being emitted, but it also triggers the Safari preview popup.)
Expected behavior
There should only be one click event emitted, with the isTrusted:true
attribute.
Would Leaflet be able to safely filter out the click events with isTrusted:false
?
Current behavior
In version 1.6 the expected behaviour is observed. In version 1.7.1 Chrome exhibits the expected behaviour, but Safari doesn't.
The differences between the two events are included below.
MouseEvent 1:
MouseEvent
_simulated: true
composed: false
isTrusted: false
layerX: 15
layerY: 28
offsetX: 15
offsetY: 28
pageX: 410
pageY: 46
screenX: 1390
screenY: 189
timeStamp: 499337
webkitForce: 0
x: 410
y: 38
MouseEvent 2:
MouseEvent
composed: true
isTrusted: true
layerX: 15
layerY: 20
offsetX: 15
offsetY: 20
pageX: 410
pageY: 38
screenX: 1390
screenY: 189
timeStamp: 538265
webkitForce: 1
x: 410
y: 38
_simulated
, composed
, isTrusted
and perhaps webkitForce
seem to be the key differences, but it also seems odd that there are different timestamps and Y dimensions between the two events.
Environment
- Leaflet version: 1.7.1
- Browser (with version): Safari 13.1.2
- OS/Platform (with version): OS X 10.13.6 and 10.15.6
Additional context
I noticed this after OpenStreetMap updated to the latest version of Leaflet, where the issue manifests itself by preventing some of the map tools to be used as the first event toggles a tool on and the second toggles it off. Related issue posted at openstreetmap/openstreetmap-website#2811
Minimal example reproducing the issue
Please see https://codepen.io/dankarran/pen/JjXMXzd