Fix CellForeground and CellBackground cursor colors

This commit fixes regression introduced in
bedf5f3004, when setting
certain CellForeground/CellBackground combinations stoppped working.
This commit is contained in:
Kirill Chibisov 2020-07-27 23:49:25 +03:00 committed by GitHub
parent a7d5a965c5
commit b7faa9f437
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 11 deletions

View File

@ -398,13 +398,14 @@ impl<'a, C> Iterator for RenderableCellsIter<'a, C> {
let mut cell = RenderableCell::new(self, cell);
if self.cursor.key.style == CursorStyle::Block {
// Invert cursor if static background is close to the cell's background.
match self.cursor.cursor_color {
CellRgb::Rgb(col) if col.contrast(cell.bg) >= MIN_CURSOR_CONTRAST => {
cell.fg = self.cursor.text_color.color(cell.fg, cell.bg);
cell.fg = match self.cursor.cursor_color {
// Apply cursor color, or invert the cursor if it has a fixed background
// close to the cell's background.
CellRgb::Rgb(col) if col.contrast(cell.bg) < MIN_CURSOR_CONTRAST => {
cell.bg
},
_ => cell.fg = cell.bg,
}
_ => self.cursor.text_color.color(cell.fg, cell.bg),
};
}
return Some(cell);
@ -422,11 +423,11 @@ impl<'a, C> Iterator for RenderableCellsIter<'a, C> {
let mut cell = RenderableCell::new(self, cell);
cell.inner = RenderableCellContent::Cursor(self.cursor.key);
// Only apply static color if it isn't close to the cell's current background.
if let CellRgb::Rgb(color) = self.cursor.cursor_color {
if color.contrast(cell.bg) >= MIN_CURSOR_CONTRAST {
cell.fg = self.cursor.cursor_color.color(cell.fg, cell.bg);
}
// Apply cursor color, or invert the cursor if it has a fixed background close
// to the cell's background.
match self.cursor.cursor_color {
CellRgb::Rgb(color) if color.contrast(cell.bg) < MIN_CURSOR_CONTRAST => (),
_ => cell.fg = self.cursor.cursor_color.color(cell.fg, cell.bg),
}
return Some(cell);