At the end of a drag operation the Mac Glass code sends out a DRAG_DONE event 
using the operation mask tracked in the GlassDragSource to determine the final 
transfer mode. That mask is only updated when a window in the JavaFX app is the 
drop destination. If the drag moves to an external destination the mask is set 
to NONE. If the drag terminates in the external destination that NONE forms the 
basis of the transfer mode sent via the DRAG_DONE event.

At the very end of the drag the OS calls the NSDraggingSource 
(GlassDraggingSource) with the final drag operation. This PR issues the 
DRAG_DONE from that callback so it can get the final transfer mode correct for 
both internal and external destinations.

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

Commit messages:
 - Using OS to determine DRAG_DONE operation

Changes: https://git.openjdk.org/jfx/pull/1371/files
 Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1371&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8325591
  Stats: 29 lines in 5 files changed: 20 ins; 1 del; 8 mod
  Patch: https://git.openjdk.org/jfx/pull/1371.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1371/head:pull/1371

PR: https://git.openjdk.org/jfx/pull/1371

Reply via email to