--- old/src/java.desktop/unix/classes/sun/awt/X11/XWindow.java 2015-10-05 07:32:43.007038557 -0400 +++ new/src/java.desktop/unix/classes/sun/awt/X11/XWindow.java 2015-10-05 07:32:42.683038564 -0400 @@ -547,10 +547,11 @@ if (isEventDisabled(xev)) { return; } - int x = xe.get_x(); - int y = xe.get_y(); - int w = xe.get_width(); - int h = xe.get_height(); + + int x = scaleDown(xe.get_x()); + int y = scaleDown(xe.get_y()); + int w = scaleDown(xe.get_width()); + int h = scaleDown(xe.get_height()); Component target = getEventSource(); ComponentAccessor compAccessor = AWTAccessor.getComponentAccessor(); @@ -675,10 +676,11 @@ when = xbe.get_time(); long jWhen = XToolkit.nowMillisUTC_offset(when); - int x = xbe.get_x(); - int y = xbe.get_y(); + int x = scaleDown(xbe.get_x()); + int y = scaleDown(xbe.get_y()); if (xev.get_xany().get_window() != window) { - Point localXY = toLocal(xbe.get_x_root(), xbe.get_y_root()); + Point localXY = toLocal(scaleDown(xbe.get_x_root()), + scaleDown(xbe.get_y_root())); x = localXY.x; y = localXY.y; } @@ -729,8 +731,8 @@ MouseEvent me = new MouseEvent(getEventSource(), type == XConstants.ButtonPress ? MouseEvent.MOUSE_PRESSED : MouseEvent.MOUSE_RELEASED, jWhen,modifiers, x, y, - xbe.get_x_root(), - xbe.get_y_root(), + scaleDown(xbe.get_x_root()), + scaleDown(xbe.get_y_root()), clickCount,popupTrigger,button); postEventToEventQueue(me); @@ -743,8 +745,8 @@ jWhen, modifiers, x, y, - xbe.get_x_root(), - xbe.get_y_root(), + scaleDown(xbe.get_x_root()), + scaleDown(xbe.get_y_root()), clickCount, false, button)); } @@ -756,8 +758,8 @@ MouseWheelEvent mwe = new MouseWheelEvent(getEventSource(),MouseEvent.MOUSE_WHEEL, jWhen, modifiers, x, y, - xbe.get_x_root(), - xbe.get_y_root(), + scaleDown(xbe.get_x_root()), + scaleDown(xbe.get_y_root()), 1,false,MouseWheelEvent.WHEEL_UNIT_SCROLL, 3,button==4 ? -1 : 1); postEventToEventQueue(mwe); @@ -804,8 +806,8 @@ /* Fix for 6176814 . Add multiclick checking. */ - int x = xme.get_x(); - int y = xme.get_y(); + int x = scaleDown(xme.get_x()); + int y = scaleDown(xme.get_y()); XWindow lastWindow = (lastWindowRef != null) ? (lastWindowRef.get()):(null); if (!(lastWindow == this && @@ -827,7 +829,8 @@ Component source = getEventSource(); if (xme.get_window() != window) { - Point localXY = toLocal(xme.get_x_root(), xme.get_y_root()); + Point localXY = toLocal(scaleDown(xme.get_x_root()), + scaleDown(xme.get_y_root())); x = localXY.x; y = localXY.y; } @@ -836,7 +839,9 @@ */ if ((isDragging && clickCount == 0) || !isDragging) { MouseEvent mme = new MouseEvent(source, mouseEventType, jWhen, - modifiers, x, y, xme.get_x_root(), xme.get_y_root(), + modifiers, x, y, + scaleDown(xme.get_x_root()), + scaleDown(xme.get_y_root()), clickCount, popupTrigger, MouseEvent.NOBUTTON); postEventToEventQueue(mme); } @@ -948,10 +953,11 @@ int modifiers = getModifiers(xce.get_state(),0,0); int clickCount = 0; boolean popupTrigger = false; - int x = xce.get_x(); - int y = xce.get_y(); + int x = scaleDown(xce.get_x()); + int y = scaleDown(xce.get_y()); if (xce.get_window() != window) { - Point localXY = toLocal(xce.get_x_root(), xce.get_y_root()); + Point localXY = toLocal(scaleDown(xce.get_x_root()), + scaleDown(xce.get_y_root())); x = localXY.x; y = localXY.y; } @@ -959,18 +965,27 @@ // This code tracks boundary crossing and ensures MOUSE_ENTER/EXIT // are posted in alternate pairs if (compWithMouse != null) { - MouseEvent me = new MouseEvent(compWithMouse, - MouseEvent.MOUSE_EXITED, jWhen, modifiers, xce.get_x(), - xce.get_y(), xce.get_x_root(), xce.get_y_root(), clickCount, popupTrigger, - MouseEvent.NOBUTTON); + MouseEvent me = new MouseEvent(compWithMouse, MouseEvent.MOUSE_EXITED, + jWhen, modifiers, + scaleDown(xce.get_x()), + scaleDown(xce.get_y()), + scaleDown(xce.get_x_root()), + scaleDown(xce.get_y_root()), + clickCount, popupTrigger, + MouseEvent.NOBUTTON); postEventToEventQueue(me); eventLog.finest("Clearing last window ref"); lastWindowRef = null; } if (xce.get_type() == XConstants.EnterNotify) { MouseEvent me = new MouseEvent(getEventSource(), MouseEvent.MOUSE_ENTERED, - jWhen, modifiers, xce.get_x(), xce.get_y(), xce.get_x_root(), xce.get_y_root(), clickCount, - popupTrigger, MouseEvent.NOBUTTON); + jWhen, modifiers, + scaleDown(xce.get_x()), + scaleDown(xce.get_y()), + scaleDown(xce.get_x_root()), + scaleDown(xce.get_y_root()), + clickCount, popupTrigger, + MouseEvent.NOBUTTON); postEventToEventQueue(me); } } @@ -1527,4 +1542,18 @@ } } + @Override + protected int getScale() { + return graphicsConfig.getScale(); + } + + @Override + protected int scaleUp(int x) { + return graphicsConfig.scaleUp(x); + } + + @Override + protected int scaleDown(int x) { + return graphicsConfig.scaleDown(x); + } }