alacritty

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 4b3e7da0fcef7b876c8fdd015d321d06e5f64e63
parent d3cfda03715c6a644048995afdffdb085984585a
Author: Christian Duerr <chrisduerr@users.noreply.github.com>
Date:   Mon, 22 Apr 2019 00:20:43 +0000

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.
Diffstat:
Msrc/ansi.rs | 3+++
Msrc/cursor.rs | 1+
Msrc/term/mod.rs | 4+++-
3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/ansi.rs b/src/ansi.rs @@ -356,6 +356,9 @@ pub enum CursorStyle { /// Cursor is a box like `☐` HollowBlock, + + /// Invisible cursor + Hidden, } impl Default for CursorStyle { diff --git a/src/cursor.rs b/src/cursor.rs @@ -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(), } } diff --git a/src/term/mod.rs b/src/term/mod.rs @@ -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 };