From 39d369aaafada760a731a603f59ced7a4ecf418e Mon Sep 17 00:00:00 2001 From: TomZz Date: Sat, 27 Jun 2026 18:28:25 +0800 Subject: [PATCH] fix: conditionally load built-in fonts if not present in system (resolves #65) --- src/app/theme.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/app/theme.rs b/src/app/theme.rs index d1147c0..bf9cbfb 100644 --- a/src/app/theme.rs +++ b/src/app/theme.rs @@ -13,15 +13,18 @@ pub(crate) const EMBEDDED_THEME_JSONS: &[&str] = &[ ]; pub(crate) fn load_fonts(cx: &mut App) -> Result<()> { - let regular = std::borrow::Cow::Borrowed( - include_bytes!("../../assets/fonts/MapleMono-NF-CN-Regular.ttf").as_slice(), - ); - let bold = std::borrow::Cow::Borrowed( - include_bytes!("../../assets/fonts/MapleMono-NF-CN-Bold.ttf").as_slice(), - ); - cx.text_system() - .add_fonts(vec![regular, bold]) - .context("load Maple Mono NF CN fonts")?; + let has_system_maple = cx.text_system().all_font_names().contains(&"Maple Mono NF CN".to_string()); + if !has_system_maple { + let regular = std::borrow::Cow::Borrowed( + include_bytes!("../../assets/fonts/MapleMono-NF-CN-Regular.ttf").as_slice(), + ); + let bold = std::borrow::Cow::Borrowed( + include_bytes!("../../assets/fonts/MapleMono-NF-CN-Bold.ttf").as_slice(), + ); + cx.text_system() + .add_fonts(vec![regular, bold]) + .context("load Maple Mono NF CN fonts")?; + } set_theme_font_names(cx.global_mut::(), ".SystemUIFont"); Ok(()) }