<AWT Dev> RFR: 8262446: DragAndDrop hangs on Windows [v2]
Alexey Ivanov
aivanov at openjdk.java.net
Fri Mar 5 17:06:23 UTC 2021
On Fri, 5 Mar 2021 16:06:04 GMT, Dmitry Markov <dmarkov at openjdk.org> 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
More information about the awt-dev
mailing list