Synthetic touch events should generate mouse{enter|leave|move|over|out} events -- including in RDM
Categories
(DevTools :: Responsive Design Mode, defect, P3)
Tracking
(Not tracked)
People
(Reporter: karlcow, Unassigned)
References
(Blocks 3 open bugs, )
Details
(Whiteboard: [rdm-reserve])
Attachments
(1 obsolete file)
Reporter | ||
Updated•6 years ago
|
Updated•6 years ago
|
Comment 2•6 years ago
|
||
Reporter | ||
Comment 3•6 years ago
|
||
Comment 4•6 years ago
|
||
Comment 5•6 years ago
|
||
Comment 6•6 years ago
|
||
Comment 7•6 years ago
|
||
Updated•6 years ago
|
Reporter | ||
Comment 8•6 years ago
|
||
Comment 9•6 years ago
|
||
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
Comment 12•6 years ago
|
||
Comment 13•6 years ago
|
||
Comment 14•6 years ago
|
||
Updated•6 years ago
|
Updated•6 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 15•4 years ago
|
||
Update on mouse event sequence as of Firefox Nightly 79.0a1 (2020-06-06) :
RDM sequence
- mousemove
- mousedown
- mouseup
Firefox Android sequence
- mouseover
- mouseenter
- mousemove
- mousedown
- mouseup
This is a little tricky since the RDM touch simulator will receive both mouseover/mouseenter events from mouse input and then prevent-defaults them. By the time touchstart
is dispatched, the pointing device is already over the boundaries of the target element so, based off the mouseover spec, the EventStateManager isn't going to dispatch anothermouseover
and mouseenter
. This is why we only see the three mouse events for the RDM sequence.
Based off https://www.w3.org/TR/touch-events/#mouse-events, we can assume that the touchstart
event type will be dispatched before any subsequent mouse events. I can think of one approach to this problem:
- Don't dispatch
mouseover
andmouseenter
events unless triggered from a touch event - on
touchstart
set a flag somewhere indicating that a followingmouseover
can be dispatched - In NotifyMouseOver, check that the following conditions are true:
- target document is in RDM
- touch simulation is enabled
- the flag indicating that "touchstart" has been dispatched is true.
- If all the above conditions are met, then we can dispatch the
mouseover
event. Otherwise, ignore it.
Comment 16•4 years ago
|
||
(In reply to Micah Tigley [:mtigley] from comment #15)
Based off https://www.w3.org/TR/touch-events/#mouse-events, we can assume that the
touchstart
event type will be dispatched before any subsequent mouse events. I can think of one approach to this problem:
Thank you for finding a solution to this. This seems reasonable to me.
Updated•4 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Description
•