From 139ccdd3241f7951c4149242e2f217b7e9343ba2 Mon Sep 17 00:00:00 2001 From: Antoine Beyeler Date: Tue, 7 Nov 2023 17:55:39 +0100 Subject: [PATCH] Fix header sizing issue The issue originates from mixing row heights (as returned by `ui.text_style_height()` and font size. This PR fixes this discrepancy, leading to correct (relative) header sizing. --- examples/hello_world.rs | 9 +++++++++ src/lib.rs | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/examples/hello_world.rs b/examples/hello_world.rs index c2fc482..f92f115 100644 --- a/examples/hello_world.rs +++ b/examples/hello_world.rs @@ -35,6 +35,15 @@ vec.push(5); 1. Sub item [^1]: A footnote + +# Header 1 +## Header 2 +### Header 3 +#### Header 4 +##### Header 5 +###### Header 6 + +Some text. "#; egui::CentralPanel::default().show(ctx, |ui| { diff --git a/src/lib.rs b/src/lib.rs index cd3a939..7e762ed 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -653,8 +653,16 @@ impl CommonMarkViewerInternal { let mut text = RichText::new(text); if let Some(level) = self.text_style.heading { - let max_height = ui.text_style_height(&TextStyle::Heading); - let min_height = ui.text_style_height(&TextStyle::Body); + let max_height = ui + .style() + .text_styles + .get(&egui::TextStyle::Heading) + .map_or(32.0, |d| d.size); + let min_height = ui + .style() + .text_styles + .get(&egui::TextStyle::Body) + .map_or(14.0, |d| d.size); let diff = max_height - min_height; match level { HeadingLevel::H1 => {