mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Fix hidden cursor inverting cell colors
Since the block cursor inverts the background and foreground colors of a cell, the hidden cursor has done the same thing without rendering a cursor since it was using the block cursor shape. A new `Hidden` cursor style has been introduced for explicitly handling the invisible cursor differently. This fixes #2342.
This commit is contained in:
parent
d3cfda0371
commit
43c8578910
3 changed files with 7 additions and 1 deletions
|
@ -356,6 +356,9 @@ pub enum CursorStyle {
|
|||
|
||||
/// Cursor is a box like `☐`
|
||||
HollowBlock,
|
||||
|
||||
/// Invisible cursor
|
||||
Hidden,
|
||||
}
|
||||
|
||||
impl Default for CursorStyle {
|
||||
|
|
|
@ -45,6 +45,7 @@ pub fn get_cursor_glyph(
|
|||
CursorStyle::Underline => get_underline_cursor_glyph(width, line_width),
|
||||
CursorStyle::Beam => get_beam_cursor_glyph(height, line_width),
|
||||
CursorStyle::Block => get_block_cursor_glyph(height, width),
|
||||
CursorStyle::Hidden => RasterizedGlyph::default(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -175,7 +175,7 @@ impl<'a> RenderableCellsIter<'a> {
|
|||
term: &'b Term,
|
||||
config: &'b Config,
|
||||
selection: Option<Locations>,
|
||||
cursor_style: CursorStyle,
|
||||
mut cursor_style: CursorStyle,
|
||||
metrics: font::Metrics,
|
||||
) -> RenderableCellsIter<'b> {
|
||||
let grid = &term.grid;
|
||||
|
@ -236,6 +236,8 @@ impl<'a> RenderableCellsIter<'a> {
|
|||
&& (cursor.col + 1) < grid.num_cols();
|
||||
Some(cursor::get_cursor_glyph(cursor_style, metrics, offset_x, offset_y, is_wide))
|
||||
} else {
|
||||
// Use hidden cursor so text will not get inverted
|
||||
cursor_style = CursorStyle::Hidden;
|
||||
None
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue