Hello,

I'm using macOS Sonoma 14.3 aarch64 and I'm trying to recognize whether a file was successfully dropped into finder from the JavaFX application. However, the event always reports that it was not accepted. I was under the impression that event.isAccepted() should return true if it was successfully dropped. This is the reproducer:

|public class DragDrop extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        var file = Files.createTempFile("test", null);

        var r = new Region();
        r.setOnDragDetected(event -> {
            event.setDragDetect(true);
            Dragboard db = r.startDragAndDrop(TransferMode.MOVE);
            var cc = new ClipboardContent();
            cc.putFiles(List.of(file.toFile()));
            db.setContent(cc);
            event.consume();
        });

        r.setOnDragDone(event -> {
            System.out.println("Accepted: " + event.isAccepted());
            System.out.println(event);
        });

        var scene = new Scene(r, 450, 500);
        primaryStage.setScene(scene);
        primaryStage.setTitle("Test");
        primaryStage.show();
    }
}|

|
|

I looked through the documentation of DragEvent but I'm still not really sure whether this is a bug. The documentation of DragEvent is a little bit light when it comes to behavior of drag events that go to the system itself.

Best
Christopher Schnick

Reply via email to