Fix bright inverse colors (#621)

Fixes #611.
This commit is contained in:
DarkDefender 2017-06-19 02:04:16 +02:00 committed by Joe Wilm
parent 1bd5c45b14
commit 35e4f2096a
2 changed files with 10 additions and 17 deletions

View File

@ -77,6 +77,10 @@ impl Cell {
self.flags.contains(BOLD)
}
pub fn inverse(&self) -> bool {
self.flags.contains(INVERSE)
}
pub fn new(c: char, fg: Color, bg: Color) -> Cell {
Cell {
c: c.into(),
@ -86,17 +90,6 @@ impl Cell {
}
}
/// Get foreground and background colors adjusted for INVERSE flag
///
/// First color is the foreground, second color is the background.
pub fn colors(&self, force_invert: bool) -> (&Color, &Color) {
if self.flags.contains(INVERSE) || force_invert {
(&self.bg, &self.fg)
} else {
(&self.fg, &self.bg)
}
}
#[inline]
pub fn is_empty(&self) -> bool {
self.c == ' ' &&

View File

@ -309,12 +309,12 @@ impl<'a> Iterator for RenderableCellsIter<'a> {
(*cell, selected)
};
// `Color` fg, bg
let (fg, bg) = cell.colors(selected);
// `Rgb` fg, bg
let fg = self.compute_fg_rgb(fg, &cell);
let bg = self.compute_bg_rgb(bg);
// Apply inversion and lookup RGB values
let (fg, bg) = if selected || cell.inverse() {
(self.compute_bg_rgb(&cell.bg), self.compute_fg_rgb(&cell.fg, &cell))
} else {
(self.compute_fg_rgb(&cell.fg, &cell), self.compute_bg_rgb(&cell.bg))
};
return Some(RenderableCell {
line: line,