As commented in the JBS issue, there is one single `dndGesture` object in 
`Scene`, that can be instantiated from three different ways: 

- DropTargetListener, on dragEnter 
- DragGestureListener, on dragGestureRecognized or 
- MouseHandler, processing a right mouse click (these two are mutually 
exclusive).  

This PR prevents that, for two almost simultaneous drag events (for instance 
via mouse and touchpad), the `dndGesture` for the last of these events gets 
initialized again, losing all existing drag info (`dndGesture.dragboard`) that 
was added to the first one, avoiding the RTE.

The existing manual test 
[DndTest](https://github.com/openjdk/jfx/blob/master/tests/manual/dnd/DndTest.java)
 has been used on MacOS to verify the PR.

-------------

Commit messages:
 - Only instantiate dndGesture if previous drag gestures have finished

Changes: https://git.openjdk.java.net/jfx/pull/372/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=372&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8165749
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jfx/pull/372.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/372/head:pull/372

PR: https://git.openjdk.java.net/jfx/pull/372

Reply via email to