The IME functions and the DND operation must be executed on the toolkit thread. 
If the DND operation is in progress, the IME API is invoked via SendMessage() 
call inside InvokeInputMethodFunction() to avoid a hang. The flag 
isInDoDragDropLoop indicates whether the DND takes place or not. The flag works 
properly if the DND is performed between two Java windows. However if anything 
is dragged from native app, (e.g. Windows FileExplorer) to Java the flag is NOT 
set. That’s the root cause of the hang.

Fix:
Introduce a new flag to indicate DND operation between Java and native app. 

Testing:
mach5 green

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

Commit messages:
 - 8262446: DragAndDrop hangs on Windows

Changes: https://git.openjdk.java.net/jdk/pull/2825/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2825&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8262446
  Stats: 10 lines in 3 files changed: 9 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2825.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2825/head:pull/2825

PR: https://git.openjdk.java.net/jdk/pull/2825

Reply via email to