diff options
author | 2024-07-28 15:40:22 +0200 | |
---|---|---|
committer | 2024-07-28 15:40:22 +0200 | |
commit | 9ce55eb51113b79d57b981ccd971242528a36395 (patch) | |
tree | 8a3482278ee2ad2257c024f5b579925d279e3bf4 /widget | |
parent | ca31dcadd52b3be05bcf01aa0426bf4279ac5f13 (diff) | |
download | iced-9ce55eb51113b79d57b981ccd971242528a36395.tar.gz iced-9ce55eb51113b79d57b981ccd971242528a36395.tar.bz2 iced-9ce55eb51113b79d57b981ccd971242528a36395.zip |
Make `underline` positioning aware of `line_height`
Diffstat (limited to 'widget')
-rw-r--r-- | widget/src/text/rich.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/widget/src/text/rich.rs b/widget/src/text/rich.rs index d179c2d6..096056d4 100644 --- a/widget/src/text/rich.rs +++ b/widget/src/text/rich.rs @@ -285,14 +285,15 @@ where } if span.underline || is_hovered_link { + let size = span + .size + .or(self.size) + .unwrap_or(renderer.default_size()); + let line_height = span .line_height .unwrap_or(self.line_height) - .to_absolute( - span.size - .or(self.size) - .unwrap_or(renderer.default_size()), - ); + .to_absolute(size); for bounds in regions { renderer.fill_quad( @@ -302,7 +303,10 @@ where + translation + Vector::new( 0.0, - line_height.0 * 0.8 + 1.0, + size.0 + + (line_height.0 - size.0) + / 2.0 + - size.0 * 0.08, ), Size::new(bounds.width, 1.0), ), |