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 Ok..This is what was missing as mentioned in the PR description "Scene creates DragEvent with only DragEvent.ANY so handleDragEnter and handleDragDrop returns null as DragEvent.getAcceptedTransferMode returns null" wherein acceptedTransferMode was null.. I didn't know we need to set the transfermode on DRAG_OVER (so that DragEvent gets DRAG_OVER eventType instead of DragEvent.ANY) and setDropCompleted from the test itself and I was trying to do in the code along with setText assuming test was correct. Thanks for the clarification. I have updated the test ------------- PR Comment: https://git.openjdk.org/jfx/pull/1843#issuecomment-3071776055