On Sun, 13 Jul 2025 08:52:31 GMT, Prasanta Sadhukhan <psadhuk...@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 one > additional commit since the last revision: > > module-info This fix is not correct. The problem is that the test program doesn't handle DragOver and DragDropped events. I suspect that the bug should be closed as "Not an issue". modules/javafx.swing/src/main/java/module-info.java line 39: > 37: requires java.datatransfer; > 38: requires javafx.base; > 39: requires javafx.controls; This should be reverted. I can think of no reason for the `javafx.swing` module to depend on `javafx.controls`. Drag and drop is not a Controls action. It is a scene graph action. ------------- Changes requested by kcr (Lead). PR Review: https://git.openjdk.org/jfx/pull/1843#pullrequestreview-3017613578 PR Review Comment: https://git.openjdk.org/jfx/pull/1843#discussion_r2205712977