< prev index next >

src/java.desktop/share/classes/sun/java2d/SunGraphicsEnvironment.java

Print this page

        

*** 64,73 **** --- 64,75 ---- import sun.font.Font2D; import sun.font.FontManager; import sun.font.FontManagerFactory; import sun.font.FontManagerForSGE; import sun.font.NativeFont; + import java.security.AccessController; + import sun.security.action.GetPropertyAction; /** * This is an implementation of a GraphicsEnvironment object for the * default local GraphicsEnvironment. *
*** 78,87 **** --- 80,98 ---- implements DisplayChangedListener { public static boolean isOpenSolaris; private static Font defaultFont; + private static final boolean uiScaleEnabled; + private static final double debugScale; + + static { + uiScaleEnabled = "true".equals(AccessController.doPrivileged( + new GetPropertyAction("sun.java2d.uiScale.enabled", "true"))); + debugScale = uiScaleEnabled ? getScaleFactor("sun.java2d.uiScale") : -1; + } + public SunGraphicsEnvironment() { java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Object>() { public Object run() { String osName = System.getProperty("os.name");
*** 339,344 **** --- 350,394 ---- * @return true if flip strategy should be used, false otherwise */ public boolean isFlipStrategyPreferred(ComponentPeer peer) { return false; } + + public static boolean isUIScaleEnabled() { + return uiScaleEnabled; + } + + public static double getDebugScale() { + return debugScale; + } + + public static double getScaleFactor(String propertyName) { + + String scaleFactor = AccessController.doPrivileged( + new GetPropertyAction(propertyName, "-1")); + + if (scaleFactor == null || scaleFactor.equals("-1")) { + return -1; + } + + try { + + if (scaleFactor.endsWith("dpi")) { + scaleFactor = scaleFactor.substring(0, scaleFactor.length() - 3); + double scale = Double.parseDouble(scaleFactor); + return scale <= 0 ? -1 : scale / 96; + } + + if (scaleFactor.endsWith("%")) { + scaleFactor = scaleFactor.substring(0, scaleFactor.length() - 1); + double scale = Double.parseDouble(scaleFactor); + return scale <= 0 ? -1 : scale / 100; + } + + double scale = Double.parseDouble(scaleFactor); + return (scale <= 0) ? -1 : scale; + + } catch (NumberFormatException ignoread) { + } + return -1; + } }
< prev index next >