Ticket #20706: JOSM-setupTextAntiAliasing.diff

File JOSM-setupTextAntiAliasing.diff, 2.0 KB (added by DevCharly, 5 years ago)

Enable text antialiasing on Linux if not yet enabled and if neither running on Gnome or KDE desktop (Java 9+ only)

  • core/src/org/openstreetmap/josm/gui/MainApplication.java

     
    1212import java.awt.Font;
    1313import java.awt.GraphicsEnvironment;
    1414import java.awt.GridBagLayout;
     15import java.awt.RenderingHints;
    1516import java.awt.Toolkit;
    1617import java.io.File;
    1718import java.io.IOException;
     
    11631164        scaleFonts(Config.getPref().getDouble("gui.scale.list.font", 1.0),
    11641165                "List.font");
    11651166        // "Table.font" see org.openstreetmap.josm.gui.util.TableHelper.setFont
     1167
     1168        setupTextAntiAliasing();
    11661169    }
    11671170
    11681171    private static void scaleFonts(double factor, String... fonts) {
     
    11781181        }
    11791182    }
    11801183
     1184    private static void setupTextAntiAliasing() {
     1185        // On Linux and running on Java 9+, enable text anti aliasing
     1186        // if not yet enabled and if neither running on Gnome or KDE desktop
     1187        if (PlatformManager.isPlatformUnixoid()
     1188                && Utils.getJavaVersion() >= 9
     1189                && UIManager.getLookAndFeelDefaults().get(RenderingHints.KEY_TEXT_ANTIALIASING) == null
     1190                && System.getProperty("awt.useSystemAAFontSettings") == null
     1191                && Toolkit.getDefaultToolkit().getDesktopProperty("gnome.Xft/Antialias") == null
     1192                && Toolkit.getDefaultToolkit().getDesktopProperty("fontconfig/Antialias") == null) {
     1193            UIManager.getLookAndFeelDefaults().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
     1194        }
     1195    }
     1196
    11811197    static Collection<PluginInformation> updateAndLoadEarlyPlugins(SplashScreen splash, SplashProgressMonitor monitor) {
    11821198        Collection<PluginInformation> pluginsToLoad;
    11831199        pluginsToLoad = PluginHandler.buildListOfPluginsToLoad(splash, monitor.createSubTaskMonitor(1, false));