diff --git a/CHANGELOG.md b/CHANGELOG.md index c26c57ded..92b4bca3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file. ## [Unreleased] ### Added - [#2427] Commandline export with use of imported SWFs (importAssets tag) +- Auto detect scale factor on Hi-dpi displays ### Fixed - [#2424] DefineEditText handling of letterSpacing, font size on incorrect values diff --git a/src/com/jpexs/decompiler/flash/gui/Main.java b/src/com/jpexs/decompiler/flash/gui/Main.java index 0dec461b6..37be5a478 100644 --- a/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/src/com/jpexs/decompiler/flash/gui/Main.java @@ -83,11 +83,13 @@ import com.sun.jna.platform.win32.Advapi32Util; import com.sun.jna.platform.win32.Kernel32; import com.sun.jna.platform.win32.WinReg; import java.awt.Component; +import java.awt.GraphicsConfiguration; import java.awt.GraphicsEnvironment; import java.awt.MenuItem; import java.awt.SystemTray; import java.awt.TrayIcon; import java.awt.Window; +import java.awt.geom.AffineTransform; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; @@ -2530,6 +2532,14 @@ public class Main { System.setProperty("sun.java2d.noddraw", "true"); if (System.getProperty("sun.java2d.uiScale") == null) { //it was not set by commandline, etc. + if (!Configuration.uiScale.hasValue()) { + GraphicsConfiguration configuration = View.getMainDefaultScreenDevice().getDefaultConfiguration(); + + AffineTransform transform = configuration.getDefaultTransform(); + if (transform != null) { + Configuration.uiScale.set(transform.getScaleX()); + } + } System.setProperty("sun.java2d.uiScale", "" + Configuration.uiScale.get()); }