Ticket #20706: antialias_v5.patch

File antialias_v5.patch, 3.1 KB (added by nvarner, 3 years ago)

@DevCharly's patch with JosmEditorPane bullet antialiasing

  • 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            UIManager.getLookAndFeelDefaults().put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
     1195        }
     1196    }
     1197
    11811198    static Collection<PluginInformation> updateAndLoadEarlyPlugins(SplashScreen splash, SplashProgressMonitor monitor) {
    11821199        Collection<PluginInformation> pluginsToLoad;
    11831200        pluginsToLoad = PluginHandler.buildListOfPluginsToLoad(splash, monitor.createSubTaskMonitor(1, false));
  • src/org/openstreetmap/josm/gui/widgets/JosmEditorPane.java

     
    33
    44import java.awt.Color;
    55import java.awt.Font;
     6import java.awt.Graphics;
     7import java.awt.Graphics2D;
     8import java.awt.RenderingHints;
    69import java.io.IOException;
    710import java.io.InputStream;
    811import java.net.URL;
     
    8689        return conn.getContent();
    8790    }
    8891
     92    @Override
     93        public void paintComponent(Graphics g) {
     94        // Force antialiasing within the JosmEditorPane for antialiased bullet points
     95        Graphics2D g2d = (Graphics2D) g.create();
     96        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
     97        super.paintComponent(g2d);
     98        g2d.dispose();
     99    }
     100
    89101    /**
    90102     * Adapts a {@link JEditorPane} to be used as a powerful replacement of {@link javax.swing.JLabel}.
    91103     * @param pane The editor pane to adapt