RFR: 8141391: DnD doesn't work for JFXPanel [v3]
Kevin Rushforth
kcr at openjdk.org
Tue Jul 15 17:38:44 UTC 2025
On Tue, 15 Jul 2025 03:38:20 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> Issue is when `JFXPanel `is used to embed some JavaFX components and when we drag something from swing or an external application and try to drop on a JavaFX component inside the JFXPanel, it doesn't accept the drop showing "block" sign suggesting DnD is blocked.
>>
>> The problem is in both drag and drop side of operations where `acceptDrag `and `acceptDrop `on `DropTargetDragEvent `is not called because `DragEvent constructor` called from `Scene `
>> [which is called from `SwingDnD `via `EmbeddedSceneDTInterface.handleDragEnter` and `handleDragDrop]
>> `
>> is not storing `state.acceptedTransferMode` when eventType is not `DragEvent.DRAG_DROPPED` or `DragEvent.DRAG_DONE` but Scene creates DragEvent with only `DragEvent.ANY`
>> so `handleDragEnter `and `handleDragDrop `returns null as `DragEvent.getAcceptedTransferMode` returns null
>>
>> Fix is made so that instead of relying on return value of handleDragEnter/handleDragDrop which seems to be always null for reason mentioned above, we rely on `isDataFlavorSupported `check for the drag and drop as is being done in JDK side of DnD scheme.
>> Also, to have a proper drop of the data, we get the focus owner from the JFXPanel scene and insert the text in the location pointed to by the mouse cursor.
>>
>> Regression test is already present in tests/manual/swing/DragDropOntoJavaFXControlInJFXPanelTest.java
>
> Prasanta Sadhukhan has updated the pull request incrementally with two additional commits since the last revision:
>
> - Revert module-info change
> - Update test with setOnDragOver and setOnDragDropped
Looks good. I changed the title of the JBS issue to reflect that this is a problem with the test. You will need to change this PR title to match before you integrate.
-------------
Marked as reviewed by kcr (Lead).
PR Review: https://git.openjdk.org/jfx/pull/1843#pullrequestreview-3021493625
More information about the openjfx-dev
mailing list