--- old/src/java.desktop/unix/classes/sun/awt/X11/XWindow.java 2015-10-22 10:07:27.491072364 -0400 +++ new/src/java.desktop/unix/classes/sun/awt/X11/XWindow.java 2015-10-22 10:07:27.311072357 -0400 @@ -548,10 +548,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(); @@ -676,10 +677,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; } @@ -730,8 +732,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); @@ -744,8 +746,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)); } @@ -757,8 +759,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); @@ -805,8 +807,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 && @@ -828,7 +830,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; } @@ -837,7 +840,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); } @@ -949,10 +954,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; } @@ -960,18 +966,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); } } @@ -1531,4 +1546,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); + } }