--- old/src/java.desktop/unix/classes/sun/awt/X11GraphicsDevice.java 2016-07-06 16:26:45.348964443 +0300 +++ new/src/java.desktop/unix/classes/sun/awt/X11GraphicsDevice.java 2016-07-06 16:26:45.228964447 +0300 @@ -281,7 +281,7 @@ int width, int height, int displayMode); private static native void resetNativeData(int screen); - private static native int getNativeScaleFactor(int screen); + private static native double getNativeScaleFactor(int screen); /** * Returns true only if: @@ -516,6 +516,11 @@ return scale; } + public int getNativeScale() { + isXrandrExtensionSupported(); + return (int)Math.round(getNativeScaleFactor(screen)); + } + private int initScaleFactor() { if (SunGraphicsEnvironment.isUIScaleEnabled()) { @@ -525,8 +530,7 @@ if (debugScale >= 1) { return (int) debugScale; } - - int nativeScale = getNativeScaleFactor(screen); + int nativeScale = getNativeScale(); return nativeScale >= 1 ? nativeScale : 1; }