Changeset 17866 in josm for trunk


Ignore:
Timestamp:
2021-05-06T18:08:22+02:00 (3 years ago)
Author:
simon04
Message:

fix #20706 - Enable text antialiasing for more systems (patch by nvarner and DevCharly)

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/MainApplication.java

    r17835 r17866  
    1313import java.awt.GraphicsEnvironment;
    1414import java.awt.GridBagLayout;
     15import java.awt.RenderingHints;
    1516import java.awt.Toolkit;
    1617import java.io.File;
     
    11641165                "List.font");
    11651166        // "Table.font" see org.openstreetmap.josm.gui.util.TableHelper.setFont
     1167
     1168        setupTextAntiAliasing();
    11661169    }
    11671170
     
    11761179                UIManager.put(key, new FontUIResource(font));
    11771180            }
     1181        }
     1182    }
     1183
     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);
    11781195        }
    11791196    }
  • trunk/src/org/openstreetmap/josm/gui/widgets/JosmEditorPane.java

    r17807 r17866  
    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;
     
    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}.
Note: See TracChangeset for help on using the changeset viewer.