From 62ed3452d6c32eef9ec63ef648ab2e65cd8c0592 Mon Sep 17 00:00:00 2001 From: bflatastic Date: Thu, 15 Oct 2026 19:07:26 +0700 Subject: [PATCH] #352: name the font list's height once The list's max height and the arrow keys' scroll offset now share one LIST_HEIGHT const. --- crates/ui-egui/src/typography.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/ui-egui/src/typography.rs b/crates/ui-egui/src/typography.rs index c76aeecd..0d9d3b8b 100644 --- a/crates/ui-egui/src/typography.rs +++ b/crates/ui-egui/src/typography.rs @@ -1065,6 +1065,8 @@ pub(crate) fn parse_letter_spacing(s: &str, cur: Option) -> Optio const RECENT_KEY: &str = "figcraft_recent_fonts"; const ROW: f32 = 26.0; +/// The font list's tallest (it scrolls past that). +const LIST_HEIGHT: f32 = 380.0; fn recent_families(ctx: &egui::Context) -> Vec { ctx.data_mut(|d| d.get_persisted::>(Id::new(RECENT_KEY))).unwrap_or_default() @@ -1162,7 +1164,7 @@ pub(crate) fn font_picker(ui: &mut Ui, current: Option<&str>, just_opened: bool) // Scrolled just enough to show it. let seen: f32 = ui.data(|d| d.get_temp(hi_id.with("offset"))).unwrap_or(0.0); let top = i as f32 * stride; - offset = Some(seen.max(top + stride - 380.0).min(top)); + offset = Some(seen.max(top + stride - LIST_HEIGHT).min(top)); } } match hi { @@ -1180,7 +1182,7 @@ pub(crate) fn font_picker(ui: &mut Ui, current: Option<&str>, just_opened: bool) } let mut budget = 4; let mut picked = None; - let mut area = egui::ScrollArea::vertical().max_height(380.0).auto_shrink([false, true]); + let mut area = egui::ScrollArea::vertical().max_height(LIST_HEIGHT).auto_shrink([false, true]); if let Some(y) = offset { area = area.vertical_scroll_offset(y); }