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