< prev index next >

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

Print this page
rev 10032 : 8143596: Ensure FXCanvas properly forwards SWT gesture events to its embedded scene.
Summary: Ensured SWT magnify, rotate, pan, and swipe events are properly forwarded to the embedded scene.
Reviewed-by: XXXX


 356         } else if (e.getID() == MouseEvent.MOUSE_PRESSED) {
 357             isCapturingMouse = true;
 358         } else if (e.getID() == MouseEvent.MOUSE_RELEASED) {
 359             if (!isCapturingMouse) {
 360                 return;
 361             }
 362             isCapturingMouse = primaryBtnDown || middleBtnDown || secondaryBtnDown;
 363         } else if (e.getID() == MouseEvent.MOUSE_CLICKED) {
 364             // Don't send click events to FX, as they are generated in Scene
 365             return;
 366         }
 367         // A workaround until JDK-8065131 is fixed.
 368         boolean popupTrigger = false;
 369         if (e.getID() == MouseEvent.MOUSE_PRESSED || e.getID() == MouseEvent.MOUSE_RELEASED) {
 370             popupTrigger = e.isPopupTrigger();
 371         }
 372 
 373         if(e.getID() == MouseEvent.MOUSE_WHEEL) {
 374             scenePeer.scrollEvent(AbstractEvents.MOUSEEVENT_VERTICAL_WHEEL,
 375                     0, -SwingEvents.getWheelRotation(e),
 376                     e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(),



 377                     (extModifiers & MouseEvent.SHIFT_DOWN_MASK) != 0,
 378                     (extModifiers & MouseEvent.CTRL_DOWN_MASK) != 0,
 379                     (extModifiers & MouseEvent.ALT_DOWN_MASK) != 0,
 380                     (extModifiers & MouseEvent.META_DOWN_MASK) != 0);
 381         } else {
 382             scenePeer.mouseEvent(
 383                     SwingEvents.mouseIDToEmbedMouseType(e.getID()),
 384                     SwingEvents.mouseButtonToEmbedMouseButton(e.getButton(), extModifiers),
 385                     primaryBtnDown, middleBtnDown, secondaryBtnDown,
 386                     e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(),
 387                     (extModifiers & MouseEvent.SHIFT_DOWN_MASK) != 0,
 388                     (extModifiers & MouseEvent.CTRL_DOWN_MASK) != 0,
 389                     (extModifiers & MouseEvent.ALT_DOWN_MASK) != 0,
 390                     (extModifiers & MouseEvent.META_DOWN_MASK) != 0,
 391                     popupTrigger);
 392         }
 393         if (e.isPopupTrigger()) {
 394             scenePeer.menuEvent(e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), false);
 395         }
 396     }
 397 
 398     /**
 399      * Overrides the {@link java.awt.Component#processMouseEvent(MouseEvent)}
 400      * method to dispatch the mouse event to the JavaFX scene attached to this




 356         } else if (e.getID() == MouseEvent.MOUSE_PRESSED) {
 357             isCapturingMouse = true;
 358         } else if (e.getID() == MouseEvent.MOUSE_RELEASED) {
 359             if (!isCapturingMouse) {
 360                 return;
 361             }
 362             isCapturingMouse = primaryBtnDown || middleBtnDown || secondaryBtnDown;
 363         } else if (e.getID() == MouseEvent.MOUSE_CLICKED) {
 364             // Don't send click events to FX, as they are generated in Scene
 365             return;
 366         }
 367         // A workaround until JDK-8065131 is fixed.
 368         boolean popupTrigger = false;
 369         if (e.getID() == MouseEvent.MOUSE_PRESSED || e.getID() == MouseEvent.MOUSE_RELEASED) {
 370             popupTrigger = e.isPopupTrigger();
 371         }
 372 
 373         if(e.getID() == MouseEvent.MOUSE_WHEEL) {
 374             scenePeer.scrollEvent(AbstractEvents.MOUSEEVENT_VERTICAL_WHEEL,
 375                     0, -SwingEvents.getWheelRotation(e),
 376                     0, 0, // total scroll
 377                     40, 40, // multiplier
 378                     e.getX(), e.getY(),
 379                     e.getXOnScreen(), e.getYOnScreen(),
 380                     (extModifiers & MouseEvent.SHIFT_DOWN_MASK) != 0,
 381                     (extModifiers & MouseEvent.CTRL_DOWN_MASK) != 0,
 382                     (extModifiers & MouseEvent.ALT_DOWN_MASK) != 0,
 383                     (extModifiers & MouseEvent.META_DOWN_MASK) != 0, false);
 384         } else {
 385             scenePeer.mouseEvent(
 386                     SwingEvents.mouseIDToEmbedMouseType(e.getID()),
 387                     SwingEvents.mouseButtonToEmbedMouseButton(e.getButton(), extModifiers),
 388                     primaryBtnDown, middleBtnDown, secondaryBtnDown,
 389                     e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(),
 390                     (extModifiers & MouseEvent.SHIFT_DOWN_MASK) != 0,
 391                     (extModifiers & MouseEvent.CTRL_DOWN_MASK) != 0,
 392                     (extModifiers & MouseEvent.ALT_DOWN_MASK) != 0,
 393                     (extModifiers & MouseEvent.META_DOWN_MASK) != 0,
 394                     popupTrigger);
 395         }
 396         if (e.isPopupTrigger()) {
 397             scenePeer.menuEvent(e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), false);
 398         }
 399     }
 400 
 401     /**
 402      * Overrides the {@link java.awt.Component#processMouseEvent(MouseEvent)}
 403      * method to dispatch the mouse event to the JavaFX scene attached to this


< prev index next >