Open Bug 1523769 Opened 5 years ago Updated 2 years ago

dragover event under Linux is not following MDN specification

Categories

(Core :: Widget: Gtk, defect)

65 Branch
Unspecified
Linux
defect

Tracking

()

UNCONFIRMED

People

(Reporter: aafnbugzilla.map1bid, Unassigned)

Details

(Keywords: platform-parity)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0

Steps to reproduce:

Under Linux on FF, subscribe to the dragover event on an HTML object.
E.g.

xxx.addEventListener("dragover", bkmkDragOverHandler);

Actual results:

When dragging something over the object, and leaving the pointer still (immobile) above it while keeping the drag button pressed, only one dragover event is received and then no more.

More dragover events are only received when moving the pointer, but not when staying still.

This means there is no 100% safe way to know when the pointer gets away from the element, in order to stop any particular thing we want to activate on the element while it is under drag (like highlighting it or a border or ..).

Indeed, under some circumstances, the dragleave and dragexit events do not fire when leaving. I guess I should open another bug for that, but lets fix the dragover thing first ..

So to 100% know that the drag pointer is not anymore on the element, I am relying on dragover frequency and timeouts on it to detect when the drag is not on the element anymore and restore things on it.
This is not working on Linux.

Note: since no mousexxx and pointerxxx events are reaching the object when there is a drag on it (I guess the drag implementation does a pointrId capture ...), there is no easy workaround available.

Expected results:

The dragover event should fire around every few hundred ms as per MDN specs

https://developer.mozilla.org/en-US/docs/Web/Events/dragover

This -> https://developer.mozilla.org/en-US/docs/Web/Events says it should be "every 350ms".

As for W3 specs, I can read this is around every 350 +/- 200 ms.

It does happen like that under Windows.
It does not under Linux, as said only 1 event is sent.

Component: Untriaged → Event Handling
Keywords: platform-parity
OS: Unspecified → Linux
Product: Firefox → Core

As this is a linux issue, I'm guessing widget component would be a better fit.

Component: Event Handling → Widget: Gtk
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.