diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java index 6b9be132..2f97c616 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -419,7 +419,7 @@ public abstract class FlatLaf // using StyleContext.getFont() here because it uses // sun.font.FontUtilities.getCompositeFontUIResource() // and creates a composite font that is able to display all Unicode characters - Font font = new StyleContext().getFont( family, style, size ); + Font font = StyleContext.getDefaultStyleContext().getFont( family, style, size ); return (font instanceof FontUIResource) ? (FontUIResource) font : new FontUIResource( font ); } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/LinuxFontPolicy.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/LinuxFontPolicy.java index 88e7283c..1ba7e683 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/LinuxFontPolicy.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/LinuxFontPolicy.java @@ -75,9 +75,11 @@ class LinuxFontPolicy } // Ubuntu font is rendered poorly (except if running in JetBrains VM) - // --> use default Java font - if( family.startsWith( "Ubuntu" ) && !SystemInfo.IS_JETBRAINS_JVM ) - family = "sans"; + // --> use Liberation Sans font + if( family.startsWith( "Ubuntu" ) && + !SystemInfo.IS_JETBRAINS_JVM && + !Boolean.parseBoolean( System.getProperty( "flatlaf.useUbuntuFont" ) ) ) + family = "Liberation Sans"; // scale font size double dsize = size * getGnomeFontScale(); diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java index bac9520c..48103abc 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import javax.swing.*; import javax.swing.text.DefaultEditorKit; +import javax.swing.text.StyleContext; import com.formdev.flatlaf.FlatLaf; import com.formdev.flatlaf.demo.extras.*; import com.formdev.flatlaf.demo.intellijthemes.*; @@ -83,7 +84,7 @@ class DemoFrame String fontFamily = e.getActionCommand(); Font font = UIManager.getFont( "defaultFont" ); - Font newFont = new Font( fontFamily, font.getStyle(), font.getSize() ); + Font newFont = StyleContext.getDefaultStyleContext().getFont( fontFamily, font.getStyle(), font.getSize() ); UIManager.put( "defaultFont", newFont ); FlatLaf.updateUI(); @@ -140,8 +141,9 @@ class DemoFrame // add font families fontMenu.addSeparator(); ArrayList families = new ArrayList<>( Arrays.asList( - "Arial", "Comic Sans MS", "Courier New", "DejaVu Sans", "Dialog", "Monospaced", - "Noto Sans", "Roboto", "SansSerif", "Segoe UI", "Serif", "Tahoma", "Ubuntu", "Verdana" ) ); + "Arial", "Cantarell", "Comic Sans MS", "Courier New", "DejaVu Sans", + "Dialog", "Liberation Sans", "Monospaced", "Noto Sans", "Roboto", + "SansSerif", "Segoe UI", "Serif", "Tahoma", "Ubuntu", "Verdana" ) ); if( !families.contains( currentFamily ) ) families.add( currentFamily ); families.sort( String.CASE_INSENSITIVE_ORDER );