--- old/src/java.desktop/macosx/classes/sun/lwawt/LWWindowPeer.java 2015-08-10 14:59:05.000000000 +0300 +++ new/src/java.desktop/macosx/classes/sun/lwawt/LWWindowPeer.java 2015-08-10 14:59:05.000000000 +0300 @@ -746,7 +746,7 @@ */ @Override public void notifyMouseEvent(int id, long when, int button, - int x, int y, int screenX, int screenY, + int x, int y, int absX, int absY, int modifiers, int clickCount, boolean popupTrigger, byte[] bdata) { @@ -763,7 +763,7 @@ this); Component target = lastMouseEventPeer.getTarget(); postMouseExitedEvent(target, when, modifiers, lp, - screenX, screenY, clickCount, popupTrigger, button); + absX, absY, clickCount, popupTrigger, button); } // Sometimes we may get MOUSE_EXITED after lastCommonMouseEventPeer is switched @@ -781,7 +781,7 @@ Point lp = targetPeer.windowToLocal(x, y, this); Component target = targetPeer.getTarget(); postMouseEnteredEvent(target, when, modifiers, lp, - screenX, screenY, clickCount, popupTrigger, button); + absX, absY, clickCount, popupTrigger, button); } lastCommonMouseEventPeer = targetPeer; lastMouseEventPeer = targetPeer; @@ -798,12 +798,12 @@ // implemented in CPlatformEmbeddedFrame class if (topmostWindowPeer == this || topmostWindowPeer == null) { generateMouseEnterExitEventsForComponents(when, button, x, y, - screenX, screenY, modifiers, clickCount, popupTrigger, + absX, absY, modifiers, clickCount, popupTrigger, targetPeer); } else { LWComponentPeer topmostTargetPeer = topmostWindowPeer.findPeerAt(r.x + x, r.y + y); topmostWindowPeer.generateMouseEnterExitEventsForComponents(when, button, x, y, - screenX, screenY, modifiers, clickCount, popupTrigger, + absX, absY, modifiers, clickCount, popupTrigger, topmostTargetPeer); } @@ -874,7 +874,7 @@ if (targetPeer.isEnabled()) { MouseEvent event = new MouseEvent(targetPeer.getTarget(), id, when, modifiers, lp.x, lp.y, - screenX, screenY, clickCount, + absX, absY, clickCount, popupTrigger, button); postEvent(event); } @@ -885,7 +885,7 @@ postEvent(new MouseEvent(targetPeer.getTarget(), MouseEvent.MOUSE_CLICKED, when, modifiers, - lp.x, lp.y, screenX, screenY, + lp.x, lp.y, absX, absY, clickCount, popupTrigger, button)); } mouseClickButtons &= ~eventButtonMask; @@ -948,10 +948,10 @@ } @Override - public void notifyMouseWheelEvent(long when, int x, int y, int modifiers, - int scrollType, int scrollAmount, - int wheelRotation, double preciseWheelRotation, - byte[] bdata) + public void notifyMouseWheelEvent(long when, int x, int y, int absX, + int absY, int modifiers, int scrollType, + int scrollAmount, int wheelRotation, + double preciseWheelRotation, byte[] bdata) { // TODO: could we just use the last mouse event target here? Rectangle r = getBounds(); @@ -963,12 +963,11 @@ Point lp = targetPeer.windowToLocal(x, y, this); // TODO: fill "bdata" member of AWTEvent - // TODO: screenX/screenY postEvent(new MouseWheelEvent(targetPeer.getTarget(), MouseEvent.MOUSE_WHEEL, when, modifiers, lp.x, lp.y, - 0, 0, /* screenX, Y */ + absX, absY, /* absX, absY */ 0 /* clickCount */, false /* popupTrigger */, scrollType, scrollAmount, wheelRotation, preciseWheelRotation));