New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8262446: DragAndDrop hangs on Windows #2825
Conversation
|
@dmarkov20 The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
@dmarkov20 This change now passes all automated pre-integration checks. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 31 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
|
Why we cannot reuse the old flag? "isInDoDragDropLoop"? I think the Robot.waitForIdle() will hang if isInDoDragDropLoop is not set to true while dragging something from the native app. |
@dmarkov20 |
Initially I didn’t want to touch that flag but after a closer look to “isInDoDragDropLoop” I think it is OK to reuse the flag. I will update PR shortly. |
That's right. This one and JDK-8261231 are two different issues. It is expected that the changes for JDK-8261231 do not fix this. |
I have update the fix: reuse isInDoDragDropLoop flag instead of introducing a new one. |
@dmarkov20 |
I have updated the copyright |
/integrate |
@dmarkov20 Since your change was applied there have been 44 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit bf9b74d. |
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
Progress
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/2825/head:pull/2825
$ git checkout pull/2825