X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=getdown%2Fsrc%2Fgetdown%2Fcore%2Fsrc%2Fmain%2Fjava%2Fjalview%2Fbin%2FHiDPISetting.java;fp=getdown%2Fsrc%2Fgetdown%2Fcore%2Fsrc%2Fmain%2Fjava%2Fjalview%2Fbin%2FHiDPISetting.java;h=bea9daecd8c7d07a10feb190f7d6a3d32e2fd9a9;hb=9bc90bcdbc78d3bafacf3c84fdf8577f4ee4a650;hp=5e20d7658cfd6fa952bb069c2791c67be948e309;hpb=6402aef8acf127e8c5fee47ccaeb0b33aab07663;p=jalview.git diff --git a/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java b/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java index 5e20d76..bea9dae 100644 --- a/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java +++ b/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java @@ -10,38 +10,52 @@ public class HiDPISetting private static final int hidpi = 110; - private static final String scaleProperty = "sun.java2d.uiScale"; + private static final String scalePropertyName = "sun.java2d.uiScale"; - private static final boolean isAMac = System.getProperty("os.name") - .indexOf("Mac") > -1; + private static final boolean isAMac; - private static final boolean isLinux = System.getProperty("os.name") - .toLowerCase().indexOf("linux") > -1; + private static final boolean isLinux; - private static final boolean isWindows = System.getProperty("os.name") - .toLowerCase().indexOf("windows") > -1; + private static final boolean isWindows; + + public static final String forceHiDPISettingPropertyName = "forceHiDPISetting"; + + private static final boolean forceHiDPISetting; static { + isAMac = System.getProperty("os.name").indexOf("Mac") > -1; + isLinux = System.getProperty("os.name").toLowerCase() + .indexOf("linux") > -1; + isWindows = System.getProperty("os.name").toLowerCase() + .indexOf("windows") > -1; dpi = Toolkit.getDefaultToolkit().getScreenResolution(); scale = dpi / hidpi + 1; - if (scale > 1 && isLinux) + String forceHiDPISettingProperty = System + .getProperty(forceHiDPISettingPropertyName); + forceHiDPISetting = forceHiDPISettingProperty != null + && forceHiDPISettingProperty.equalsIgnoreCase("true"); + if (doCondition()) { + System.out.println("Property '" + forceHiDPISettingPropertyName + "'=" + + forceHiDPISettingProperty); + System.out.println("boolean forceHiDPISetting=" + forceHiDPISetting); System.out.println("DPI detected as " + dpi + ". Scaling factor set to " + scale + "."); } } - public static String getScalePropertyArg() + private static synchronized boolean doCondition() + { + return (scale > 1 && isLinux) || forceHiDPISetting; + } + + public static synchronized String getScalePropertyArg() { // HiDPI setting. Just looking at Linux to start with. Test with Windows. - if (!isLinux) - { - return null; - } - if (scale > 1) + if (doCondition()) { - return "-D" + scaleProperty + "=" + scale; + return "-D" + scalePropertyName + "=" + scale; } return null; }