Detecting successful file drops on macOS
Christopher Schnick
crschnick at xpipe.io
Sat Feb 10 05:17:50 UTC 2024
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240210/93296134/attachment.htm>
More information about the openjfx-dev
mailing list