mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
UI: draw the ▸ menu-path separator instead of a missing-glyph box
Inter and egui's built-in fallbacks have no glyph for ▸ (U+25B8), so the command palette's "EffectCraft ▸ Settings... ▸ Appearance..." and every "File ▸ Import" hint drew a box. JetBrains Mono, already bundled, has it: register it as a symbol fallback for the non-monospace families. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
9a7d3e7699
commit
01400f0a89
1 file changed
+20
@@ -340,6 +340,13 @@ pub fn install(ctx: &egui::Context, t: &Tokens, language: &str) {
|
||||
fonts.families.entry(FontFamily::Monospace).or_default().insert(0, "jbmono".into());
|
||||
fonts.families.insert(FontFamily::Name("semibold".into()), vec!["inter-semibold".into(), "inter".into()]);
|
||||
fonts.families.insert(FontFamily::Name("medium".into()), vec!["inter-medium".into(), "inter".into()]);
|
||||
// Inter and egui's own fallbacks have no small triangles (the `▸` of "File ▸ Import"), which
|
||||
// would draw as missing-glyph boxes: JetBrains Mono fills in the symbols the others lack.
|
||||
for (family, stack) in &mut fonts.families {
|
||||
if *family != FontFamily::Monospace {
|
||||
stack.push("jbmono".into());
|
||||
}
|
||||
}
|
||||
install_script_fallbacks(&mut fonts, language);
|
||||
ctx.set_fonts(fonts);
|
||||
apply_visuals(ctx, t);
|
||||
@@ -649,6 +656,19 @@ mod tests {
|
||||
install_script_fallbacks(&mut english, "en");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn interface_symbols_have_a_glyph_in_every_family() {
|
||||
let ctx = egui::Context::default();
|
||||
install(&ctx, &Tokens::for_kind(Default::default()), "en");
|
||||
ctx.run_ui(Default::default(), |_| {}).textures_delta.clear();
|
||||
for family in [FontFamily::Proportional, FontFamily::Monospace, FontFamily::Name("medium".into()), FontFamily::Name("semibold".into())] {
|
||||
let id = FontId::new(12.0, family);
|
||||
for c in "▸•›·▶◀●○⚠…×".chars() {
|
||||
assert!(ctx.fonts_mut(|f| f.has_glyph(&id, c)), "{c} has no glyph in {id:?}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn hangul_gets_a_face_when_one_is_installed() {
|
||||
use effectcraft_text::fonts;
|
||||
|
||||
Reference in new issue
Block a user