From d22cd7409ce4979a722ebe56578dc3dec176212c Mon Sep 17 00:00:00 2001 From: Kirill Chibisov Date: Thu, 3 Feb 2022 03:22:28 +0300 Subject: [PATCH] Fix builtin font block elements going invisible --- alacritty/src/renderer/builtin_font.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/alacritty/src/renderer/builtin_font.rs b/alacritty/src/renderer/builtin_font.rs index 057984667f..0922d3eff9 100644 --- a/alacritty/src/renderer/builtin_font.rs +++ b/alacritty/src/renderer/builtin_font.rs @@ -385,7 +385,7 @@ fn box_drawing(character: char, metrics: &Metrics, offset: &Delta) -> Raster '\u{2580}'..='\u{2587}' | '\u{2589}'..='\u{2590}' | '\u{2594}' | '\u{2595}' => { let width = width as f32; let height = height as f32; - let rect_width = match character { + let mut rect_width = match character { '\u{2589}' => width * 7. / 8., '\u{258a}' => width * 6. / 8., '\u{258b}' => width * 5. / 8., @@ -397,7 +397,8 @@ fn box_drawing(character: char, metrics: &Metrics, offset: &Delta) -> Raster '\u{2595}' => width * 1. / 8., _ => width, }; - let (rect_height, y) = match character { + + let (mut rect_height, mut y) = match character { '\u{2580}' => (height * 4. / 8., height * 8. / 8.), '\u{2581}' => (height * 1. / 8., height * 1. / 8.), '\u{2582}' => (height * 2. / 8., height * 2. / 8.), @@ -409,12 +410,18 @@ fn box_drawing(character: char, metrics: &Metrics, offset: &Delta) -> Raster '\u{2594}' => (height * 1. / 8., height * 8. / 8.), _ => (height, height), }; + // Fix `y` coordinates. - let y = height - y; + y = height - y; + + // Ensure that resulted glyph will be visible and also round sizes instead of straight + // flooring them. + rect_width = cmp::max(rect_width.round() as i32, 1) as f32; + rect_height = cmp::max(rect_height.round() as i32, 1) as f32; let x = match character { '\u{2590}' => canvas.x_center(), - '\u{2595}' => width as f32 - width / 8., + '\u{2595}' => width as f32 - rect_width, _ => 0., };