From bf72b5a326c2c06541fd0564417a4ad52a9938bc Mon Sep 17 00:00:00 2001 From: Christian Duerr Date: Wed, 6 Dec 2017 22:24:47 +0100 Subject: Add custom underline cursor As mentioned in jwilm/alacritty#931, it can be troublesome if a font has an underline symbol outside of the glyph's bounding box. This can lead to the underline disappearing at the bottom of the terminal. As a solution a symbol from the private use area was used as the character code for the underline symbol. Whenever this symbol is encountered, instead of rendering it, a custom block is rendered. In this implementation the block has the full character as width and sits flush with the bottom of the glyph's bounding box. The height is half the distance between the baseline and the bottom of the bounding box. --- src/term/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/term/mod.rs b/src/term/mod.rs index 18858da5..892a96bb 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -207,7 +207,8 @@ impl<'a> RenderableCellsIter<'a> { }); let cursor_color = self.text_cursor_color(&cursor_cell); - cursor_cell.c = '▁'; + // This is part of the private use area and shouldn't be used by any font + cursor_cell.c = '􊏢'; cursor_cell.fg = cursor_color; self.cursor_cells.push_back(Indexed { line: self.cursor.line, -- cgit