--- old/src/java.desktop/share/classes/sun/awt/AWTAccessor.java 2017-08-15 15:41:15.000000000 +0100 +++ new/src/java.desktop/share/classes/sun/awt/AWTAccessor.java 2017-08-15 15:41:15.000000000 +0100 @@ -38,6 +38,7 @@ import java.awt.event.InputEvent; import java.awt.event.InvocationEvent; import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import java.awt.image.BufferStrategy; import java.awt.peer.ComponentPeer; @@ -412,6 +413,21 @@ boolean canAccessSystemClipboard); } + /** + * An accessor for the MouseEvent class. + */ + public interface MouseEventAccessor { + /** + * Indicates whether the event is a result of a touch event. + */ + boolean isCausedByTouchEvent(MouseEvent ev); + + /** + * Sets whether the event is a result of a touch event. + */ + void setCausedByTouchEvent(MouseEvent ev, boolean causedByTouchEvent); + } + /* * An accessor for the java.awt.Frame class. */ @@ -851,6 +867,7 @@ private static WindowAccessor windowAccessor; private static AWTEventAccessor awtEventAccessor; private static InputEventAccessor inputEventAccessor; + private static MouseEventAccessor mouseEventAccessor; private static FrameAccessor frameAccessor; private static KeyboardFocusManagerAccessor kfmAccessor; private static MenuComponentAccessor menuComponentAccessor; @@ -965,6 +982,23 @@ } /* + * Set an accessor object for the java.awt.event.MouseEvent class. + */ + public static void setMouseEventAccessor(MouseEventAccessor mea) { + mouseEventAccessor = mea; + } + + /* + * Retrieve the accessor object for the java.awt.event.MouseEvent class. + */ + public static MouseEventAccessor getMouseEventAccessor() { + if (mouseEventAccessor == null) { + unsafe.ensureClassInitialized(MouseEvent.class); + } + return mouseEventAccessor; + } + + /* * Set an accessor object for the java.awt.Frame class. */ public static void setFrameAccessor(FrameAccessor fa) {