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

Reply via email to