Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8214083

Linux Debian Drag Drop is not working properly

XMLWordPrintable

    • 11
    • x86_64
    • linux

      A DESCRIPTION OF THE PROBLEM :
      Hello,
      I switched from Oracle jdk 10 to open jdk 11 and open jfx 11.
      All my drag events are not running with open jfx 11, open jdk 11 and Linux Debian.
      DragDetected will be get called but all other following drag events like dragOver and dragEntered are not getting called.

      Under Windows with open jdk 11 and open jfx 11 everything is working fine.

      I set some breakpoints (Scene -> private boolean process(MouseEvent mouseEvent, EventTarget target)) to understand how the code is working.

      However, with some breakpoints and after some drag repeation with the mouse, sometimes the drag events are working properly.

      But without breakpoints only the dragDetected event is called properly. Like I said, when im using Windows or Oracle jdk 10 everything is working fine.

      In the example code is some example code which is working with Windows(open jdk 11/open jfx 11) or Linux Debian(Oracle jdk 10) but not working with Linux Debian(open jdk 11/open jfx 11)

      REGRESSION : Last worked in version 8u181

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Set all drag drop event on a node and try to do drag drop

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      All drag drop event should called properly
      ACTUAL -
      Only drag detected will be get called all other events are ignored

      ---------- BEGIN SOURCE ----------
      public class DragDropBug extends Application {

          @Override
          public void start(Stage primaryStage) {
              Label label1 = new Label("Label 1");
              Label label2 = new Label("Label 2");
              
              
              label1.setOnDragDetected((t) -> {
                  System.out.println("drag detected will be called");
              });
              
              label2.setOnDragEntered((t) -> {
                  System.out.println("drag entered will not be called");
              });
              label2.setOnDragOver((t) -> {
                  System.out.println("drag over will not be called");
              });
              
              VBox root = new VBox(100, label1, label2);

              Scene scene = new Scene(root, 300, 250);

              primaryStage.setTitle("DragDropBug");
              primaryStage.setScene(scene);
              primaryStage.show();
          }

          /**
           * @param args the command line arguments
           */
          public static void main(String[] args) {
              launch(args);
          }

      }
      ---------- END SOURCE ----------

            pmangal Priyanka Mangal (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: