fix(gui): ensure all fonts are 'composite' (#2856)

This commit is contained in:
Skylot
2026-04-25 19:26:27 +01:00
parent 97fa8ff210
commit 044c75ab9f
3 changed files with 17 additions and 9 deletions
@@ -8,7 +8,6 @@ import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jadx.core.utils.Utils;
import jadx.gui.utils.FontUtils;
import jadx.gui.utils.UiUtils;
@@ -24,7 +23,7 @@ public class FontAdapter {
private Consumer<String> fontSetter;
private float uiZoom;
public FontAdapter(Font defaultFont) {
FontAdapter(Font defaultFont) {
Objects.requireNonNull(defaultFont);
this.defaultFont = defaultFont;
this.font = defaultFont;
@@ -39,12 +38,12 @@ public class FontAdapter {
}
public void setDefaultFont(Font newDefaultFont) {
Objects.requireNonNull(newDefaultFont);
Font newDefFont = FontUtils.toCompositeFont(newDefaultFont);
Font prevDefaultFont = defaultFont;
defaultFont = newDefaultFont;
defaultFont = newDefFont;
if (font == prevDefaultFont) {
// font was set to default => update it also
setFont(newDefaultFont);
setFont(newDefFont);
}
}
@@ -57,7 +56,11 @@ public class FontAdapter {
}
public void setFont(@Nullable Font newFont) {
font = Utils.getOrElse(newFont, defaultFont);
if (newFont != null) {
font = FontUtils.toCompositeFont(newFont);
} else {
font = defaultFont;
}
fontSetter.accept(getFontStr());
applyFontZoom();
}
@@ -7,11 +7,12 @@ import javax.swing.UIManager;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.fonts.inter.FlatInterFont;
import com.formdev.flatlaf.fonts.jetbrains_mono.FlatJetBrainsMonoFont;
import com.formdev.flatlaf.util.FontUtils;
import jadx.gui.settings.JadxSettingsData;
import jadx.gui.utils.UiUtils;
import static jadx.gui.utils.FontUtils.getCompositeFont;
/**
* Handle all font related settings
*/
@@ -32,8 +33,8 @@ public class FontSettings {
public FontSettings() {
int defFontSize = 13;
Font defUiFont = FontUtils.getCompositeFont(FlatInterFont.FAMILY, Font.PLAIN, defFontSize);
Font defCodeFont = FontUtils.getCompositeFont(FlatJetBrainsMonoFont.FAMILY, Font.PLAIN, defFontSize);
Font defUiFont = getCompositeFont(FlatInterFont.FAMILY, Font.PLAIN, defFontSize);
Font defCodeFont = getCompositeFont(FlatJetBrainsMonoFont.FAMILY, Font.PLAIN, defFontSize);
uiFontAdapter = new FontAdapter(defUiFont);
codeFontAdapter = new FontAdapter(defCodeFont);
smaliFontAdapter = new FontAdapter(defCodeFont);
@@ -101,6 +101,10 @@ public class FontUtils {
return com.formdev.flatlaf.util.FontUtils.getCompositeFont(family, style, size);
}
public static Font toCompositeFont(Font font) {
return getCompositeFont(font.getFamily(), font.getStyle(), font.getSize());
}
private FontUtils() {
}
}