modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java

Print this page

        

@@ -351,20 +351,25 @@
             isCapturingMouse = primaryBtnDown || middleBtnDown || secondaryBtnDown;
         } else if (e.getID() == MouseEvent.MOUSE_CLICKED) {
             // Don't send click events to FX, as they are generated in Scene
             return;
         }
+        // A workaround until JDK-8065131 is fixed.
+        boolean popupTrigger = false;
+        if (e.getID() == MouseEvent.MOUSE_PRESSED || e.getID() == MouseEvent.MOUSE_RELEASED) {
+            popupTrigger = e.isPopupTrigger();
+        }
         scenePeer.mouseEvent(
                 SwingEvents.mouseIDToEmbedMouseType(e.getID()),
                 SwingEvents.mouseButtonToEmbedMouseButton(e.getButton(), extModifiers),
                 primaryBtnDown, middleBtnDown, secondaryBtnDown,
                 e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(),
                 (extModifiers & MouseEvent.SHIFT_DOWN_MASK) != 0,
                 (extModifiers & MouseEvent.CTRL_DOWN_MASK) != 0,
                 (extModifiers & MouseEvent.ALT_DOWN_MASK) != 0,
                 (extModifiers & MouseEvent.META_DOWN_MASK) != 0,
-                SwingEvents.getWheelRotation(e), e.isPopupTrigger());
+                SwingEvents.getWheelRotation(e), popupTrigger);
         if (e.isPopupTrigger()) {
             scenePeer.menuEvent(e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), false);
         }
     }