git.lucas.co / cce-files
file manager
git clone https://git.lucas.co/cce-files.git

commit90b998ed1ea8bbd13b3321d84bd9b9d71bf40785
parent5a33a40b60
authorLucas Galante <[email protected]>
date2026-06-15 22:09
Fix make_text_buffer to parse font strings with size suffixes

 src/main.rs | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index e7f16ac..d72e3a0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -73,19 +73,32 @@ pub enum Message {
 
 fn make_text_buffer(fs: &mut FontSystem, text: &str, size: f32, font: Option<&str>) -> Buffer {
     let scale = clear_ui::scale::scale_factor();
-    let physical_size = size * scale;
+    let mut font_size = size;
+    let mut family_name = None;
+
+    if let Some(f) = font {
+        let (parsed_family, parsed_size) = clear_ui::layout::parse_font_string(f);
+        if let Some(ps) = parsed_size {
+            font_size = ps;
+        }
+        family_name = Some(parsed_family);
+    }
+
+    let physical_size = font_size * scale;
     let metrics = Metrics::new(physical_size, physical_size * 1.4);
     let mut buf = Buffer::new(fs, metrics);
     let mut attrs = Attrs::new();
-    if let Some(f) = font {
-        let family = match f {
+
+    if let Some(ref fam) = family_name {
+        let family = match fam.as_str() {
             "monospace" => glyphon::Family::Name(clear_ui::layout::get_system_monospace_font()),
             "sans-serif" => glyphon::Family::SansSerif,
             "serif" => glyphon::Family::Serif,
-            _ => glyphon::Family::Name(f),
+            _ => glyphon::Family::Name(fam),
         };
         attrs = attrs.family(family);
     }
+
     buf.set_text(fs, text, attrs, glyphon::Shaping::Advanced);
     buf.shape_until_scroll(fs, true);
     buf