JAL-3833 cap the scaling used by HiDPISetting for incorrect DPI values or incorrect...
authorBen Soares <b.soares@dundee.ac.uk>
Sun, 18 Apr 2021 19:31:07 +0000 (20:31 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Sun, 18 Apr 2021 19:31:07 +0000 (20:31 +0100)
src/jalview/bin/HiDPISetting.java

index d6d440a..7a22607 100644 (file)
@@ -34,6 +34,8 @@ public class HiDPISetting
 
   public static int scale = 0;
 
+  public final static int MAX_SCALE = 8;
+
   private static boolean doneInit = false;
 
   private static boolean allowScalePropertyArg = false;
@@ -149,6 +151,14 @@ public class HiDPISetting
 
     int dimensionScale = 1 + (mindimension / bigScreenThreshold);
 
+    // reject outrageous values -- dpiScale in particular could be mistaken
+    if (dpiScale > MAX_SCALE) {
+      dpiScale = 1;
+    }
+    if (dimensionScale > MAX_SCALE) {
+      dimensionScale = 1;
+    }
+
     // choose larger of dimensionScale or dpiScale (most likely dimensionScale
     // as dpiScale often misreported)
     int autoScale = Math.max(dpiScale, dimensionScale);