On Fri, 5 Mar 2021 16:06:04 GMT, Dmitry Markov <[email protected]> wrote:
>> 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
>
> Dmitry Markov has updated the pull request incrementally with one additional
> commit since the last revision:
>
> reuse isInDoDragDropLoop
Marked as reviewed by aivanov (Reviewer).
src/java.desktop/windows/native/libawt/windows/awt_DnDDT.cpp line 228:
> 226: HRESULT __stdcall AwtDropTarget::DragOver(DWORD grfKeyState, POINTL pt,
> DWORD __RPC_FAR *pdwEffect) {
> 227: TRY;
> 228: AwtToolkit::GetInstance().isInDoDragDropLoop = TRUE;
This is a new addition. Did you miss this function in previous iteration?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2825