From 9e24baef59b25ff1f8587999bc3250fe68ce32df Mon Sep 17 00:00:00 2001 From: Julian Burner Date: Wed, 7 Dec 2022 19:54:18 +0100 Subject: Provide fallback anti-aliasing for DEs the JRE doesn't recognize (#466) --- enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java index 56f43859..213a5fea 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java @@ -11,6 +11,7 @@ package cuchaz.enigma.gui; +import java.awt.Toolkit; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -102,7 +103,18 @@ public class Main { EnigmaProfile parsedProfile = EnigmaProfile.read(options.valueOf(profile)); I18n.setLanguage(UiConfig.getLanguage()); - System.setProperty("apple.laf.useScreenMenuBar", "true"); + + // Provide fallback anti-aliasing for desktop environments the JRE doesn't recognize + if (Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints") == null) { + setDefaultSystemProperty("awt.useSystemAAFontSettings", "lcd"); + } + + // Not setting "swing.aatext" here because that property has been removed: + // https://bugs.openjdk.org/browse/JDK-6391267 + + // If on MacOS, use the system's menu bar, not the in-app one + setDefaultSystemProperty("apple.laf.useScreenMenuBar", "true"); + Themes.setupTheme(); Gui gui = new Gui(parsedProfile, editables); @@ -147,6 +159,10 @@ public class Main { } } + private static void setDefaultSystemProperty(String property, String value) { + System.setProperty(property, System.getProperty(property, value)); + } + public static class PathConverter implements ValueConverter { public static final ValueConverter INSTANCE = new PathConverter(); -- cgit v1.2.3