7124520: [macosx] re:6373505 Toolkit.getScreenResolution() != GraphicsConfiguration.getNormalizingTransform()
Reviewed-by: anthony, kizune
--- a/jdk/src/macosx/classes/sun/awt/CGraphicsDevice.java Thu Oct 18 18:28:42 2012 +0400
+++ b/jdk/src/macosx/classes/sun/awt/CGraphicsDevice.java Fri Oct 19 15:23:14 2012 +0400
@@ -33,9 +33,7 @@
import sun.java2d.opengl.CGLGraphicsConfig;
-import sun.awt.FullScreenCapable;
-
-public class CGraphicsDevice extends GraphicsDevice {
+public final class CGraphicsDevice extends GraphicsDevice {
// CoreGraphics display ID
private final int displayID;
@@ -108,11 +106,6 @@
return nativeGetYResolution(displayID);
}
- public int getScreenResolution() {
- // TODO: report non-72 value when HiDPI is turned on
- return 72;
- }
-
private static native double nativeGetXResolution(int displayID);
private static native double nativeGetYResolution(int displayID);
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Thu Oct 18 18:28:42 2012 +0400
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Fri Oct 19 15:23:14 2012 +0400
@@ -53,7 +53,7 @@
/**
* Mac OS X Cocoa-based AWT Toolkit.
*/
-public class LWCToolkit extends LWToolkit {
+public final class LWCToolkit extends LWToolkit {
// While it is possible to enumerate all mouse devices
// and query them for the number of buttons, the code
// that does it is rather complex. Instead, we opt for
@@ -278,7 +278,6 @@
return new CMouseInfoPeer();
}
-
@Override
protected int getScreenHeight() {
return GraphicsEnvironment.getLocalGraphicsEnvironment()
@@ -333,8 +332,9 @@
@Override
public int getScreenResolution() throws HeadlessException {
- return ((CGraphicsDevice) GraphicsEnvironment
- .getLocalGraphicsEnvironment().getDefaultScreenDevice()).getScreenResolution();
+ return (int) ((CGraphicsDevice) GraphicsEnvironment
+ .getLocalGraphicsEnvironment().getDefaultScreenDevice())
+ .getXResolution();
}
@Override
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java Fri Oct 19 15:23:14 2012 +0400
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 6373505
+ * @summary Tests that the result of Toolkit.getScreenResolution() is
+ * consistent with GraphicsConfiguration.getNormalizingTransform().
+ * @author Dmitri.Trembovetski@Sun.COM: area=GraphicsConfiguration
+ * @run main NormalizingTransformTest
+ */
+
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsEnvironment;
+import java.awt.Toolkit;
+import java.awt.geom.AffineTransform;
+
+public class NormalizingTransformTest {
+
+ public static void main(String[] args) {
+ GraphicsConfiguration gc =
+ GraphicsEnvironment.getLocalGraphicsEnvironment().
+ getDefaultScreenDevice().getDefaultConfiguration();
+ AffineTransform normTransform = gc.getNormalizingTransform();
+ int dpiX = Toolkit.getDefaultToolkit().getScreenResolution();
+ int normDpiX = (int)(normTransform.getScaleX() * 72.0);
+ if (dpiX != normDpiX) {
+ throw new RuntimeException(
+ "Test FAILED. Toolkit.getScreenResolution()=" + dpiX +
+ " GraphicsConfiguration.getNormalizingTransform()="+normDpiX);
+ }
+ System.out.println("Test PASSED. DPI="+normDpiX);
+ }
+
+}