Affected Version
18.6.1
Reproduction URL (StackBlitz, GitHub, etc.)
No response
Steps to Reproduce
Summary
When the user clicks on a draggable node and immediately moves the cursor very fast (within ~1 frame), the node visually lags behind by 20–50px and then snaps to catch up with the cursor on the next pointer move. The faster the initial flick, the bigger the visible jump.
Reproduction
Set up any basic with a single [fNode] node + fDragHandle on its header.
Mouse down on the header.
Move the cursor diagonally without releasing at a fast speed (1 quick flick).
Observe: the node remains at its initial position for one frame, then teleports to a position that does not match the cursor.
Expected Behavior
The node tracks the cursor continuously from the moment the drag threshold is crossed, with no visible offset between cursor and node anchor.
Actual Behavior
The node stays at its initial position during prepareDragSequence() and only starts following the cursor on the next pointermove event after the threshold pass. By that time the cursor has already travelled past the threshold by several px → the next onPointerMove applies a delta-from-mousedown that is much larger than expected → the node "snaps" to catch up.
Acceptance Criteria
No response
Browser
Firefox
Affected Version
18.6.1
Reproduction URL (StackBlitz, GitHub, etc.)
No response
Steps to Reproduce
Summary
When the user clicks on a draggable node and immediately moves the cursor very fast (within ~1 frame), the node visually lags behind by 20–50px and then snaps to catch up with the cursor on the next pointer move. The faster the initial flick, the bigger the visible jump.
Reproduction
Set up any basic with a single [fNode] node + fDragHandle on its header.
Mouse down on the header.
Move the cursor diagonally without releasing at a fast speed (1 quick flick).
Observe: the node remains at its initial position for one frame, then teleports to a position that does not match the cursor.
Expected Behavior
The node tracks the cursor continuously from the moment the drag threshold is crossed, with no visible offset between cursor and node anchor.
Actual Behavior
The node stays at its initial position during prepareDragSequence() and only starts following the cursor on the next pointermove event after the threshold pass. By that time the cursor has already travelled past the threshold by several px → the next onPointerMove applies a delta-from-mousedown that is much larger than expected → the node "snaps" to catch up.
Acceptance Criteria
No response
Browser
Firefox