On Sat, 16 Aug 2025 20:44:28 GMT, Nir Lisker <nlis...@openjdk.org> wrote:
> Adds `MOUSE_DRAG_DONE` event type to `MouseDragEvent` and appropriate > handlers. Forgot to attach a small manual test application I used for testing full DPR and DnD. Might be helpful for reviewers. package main; import javafx.application.Application; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.input.ClipboardContent; import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; import javafx.scene.input.TransferMode; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class MouseTest extends Application { public static void main(String[] args) { launch(args); } @Override public void start(@SuppressWarnings("exports") Stage stage) throws Exception { var sourceMouse = createSourceMouse(); var sourceDrag = createSourceDrag(); var target = createTarget(); var scene = createScene(sourceMouse, sourceDrag, target); stage.setScene(scene); stage.show(); } private Rectangle createSourceMouse() { var sourceMouse = new Rectangle(50, 50); sourceMouse.setId("sourceMouse"); sourceMouse.setFill(Color.RED); sourceMouse.setOnDragDetected(e -> { sourceMouse.startFullDrag(); System.out.println(e.getEventType() + " " + sourceMouse.getId()); e.consume(); }); addDragListeners(sourceMouse); return sourceMouse; } private Rectangle createSourceDrag() { var sourceDrag = new Rectangle(50, 50); sourceDrag.setId("sourceDrag"); sourceDrag.setFill(Color.GREEN); sourceDrag.setOnDragDetected(e -> { Dragboard db = sourceDrag.startDragAndDrop(TransferMode.ANY); var content = new ClipboardContent(); content.putString(""); db.setContent(content); System.out.println(e.getEventType() + " " + sourceDrag.getId()); e.consume(); }); addDragListeners(sourceDrag); return sourceDrag; } private Rectangle createTarget() { var target = new Rectangle(100, 50); target.setId("target"); target.setFill(Color.BLUE); target.setOnDragDetected(MouseEvent::consume); addDragListeners(target); return target; } private Scene createScene(Rectangle sourceMouse, Rectangle sourceDrag, Rectangle target) { var scene = new Scene(new VBox(10, new HBox(sourceMouse, sourceDrag), target), 300, 200); scene.setOnDragDetected(e -> { scene.startFullDrag(); System.out.println(e.getEventType() + " scene"); }); scene.setOnDragDone(e -> { e.acceptTransferModes(TransferMode.ANY); System.out.println(e.getEventType() + " scene"); }); scene.setOnMouseDragReleased(e -> System.out.println(e.getEventType() + " scene")); scene.setOnMouseDragDone(e -> System.out.println(e.getEventType() + " scene")); return scene; } private static void addDragListeners(Node node) { node.setOnDragOver(e -> { e.acceptTransferModes(TransferMode.ANY); System.out.println(e.getEventType() + " " + node.getId()); }); node.setOnMouseDragOver(e -> System.out.println(e.getEventType() + " " + node.getId())); node.setOnDragDropped(e -> { e.acceptTransferModes(TransferMode.ANY); e.setDropCompleted(true); System.out.println(e.getEventType() + " " + node.getId()); }); node.setOnMouseDragReleased(e -> System.out.println(e.getEventType() + " " + node.getId())); node.setOnDragDone(e -> { e.acceptTransferModes(TransferMode.ANY); System.out.println(e.getEventType() + " " + node.getId()); }); node.setOnMouseDragDone(e -> System.out.println(e.getEventType() + " " + node.getId())); } } ------------- PR Comment: https://git.openjdk.org/jfx/pull/1873#issuecomment-3197980633