Skip to content

Commit 3e7b25a

Browse files
feat(ui): redetect scale factor on each launch when not set in config (PR260)
* re-detect DPI scale each launch instead of using stale saved value * make uiScale config default null --------- Co-authored-by: Jindra Petřík <jindra.petrik@gmail.com>
1 parent 66042ec commit 3e7b25a

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ public final class Configuration {
823823
@ConfigurationCategory("script")
824824
public static ConfigurationItem<Boolean> flattenASPackages = null;
825825

826-
@ConfigurationDefaultDouble(1.0)
826+
//@ConfigurationDefaultDouble(1.0)
827827
@ConfigurationCategory("display")
828828
@ConfigurationName("gui.scale")
829829
public static ConfigurationItem<Double> uiScale = null;

src/com/jpexs/decompiler/flash/gui/Main.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2971,16 +2971,19 @@ private static void initGui() {
29712971
System.setProperty("sun.java2d.d3d", "false");
29722972
System.setProperty("sun.java2d.noddraw", "true");
29732973

2974-
if (System.getProperty("sun.java2d.uiScale") == null) { //it was not set by commandline, etc.
2975-
if (!Configuration.uiScale.hasValue()) {
2974+
if (System.getProperty("sun.java2d.uiScale") == null) { //it was not set by commandline, etc.
2975+
double scaleToUse = Configuration.uiScale.get();
2976+
if (!Configuration.uiScale.hasValue() || Configuration.uiScale.get() == null) {
2977+
// Auto-detect from current screen. Do NOT persist to config so the scale is
2978+
// re-detected on each launch (prevents stale 4K scale being applied on a
2979+
// lower-DPI monitor after a display change).
29762980
GraphicsConfiguration configuration = View.getMainDefaultScreenDevice().getDefaultConfiguration();
2977-
29782981
AffineTransform transform = configuration.getDefaultTransform();
29792982
if (transform != null) {
2980-
Configuration.uiScale.set(transform.getScaleX());
2983+
scaleToUse = transform.getScaleX();
29812984
}
29822985
}
2983-
System.setProperty("sun.java2d.uiScale", "" + Configuration.uiScale.get());
2986+
System.setProperty("sun.java2d.uiScale", "" + scaleToUse);
29842987
}
29852988

29862989
if (Configuration.hwAcceleratedGraphics.get()) {

0 commit comments

Comments
 (0)