diff options
Diffstat (limited to 'alacritty/src/display/content.rs')
-rw-r--r-- | alacritty/src/display/content.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/alacritty/src/display/content.rs b/alacritty/src/display/content.rs index 85719c06..297aefd6 100644 --- a/alacritty/src/display/content.rs +++ b/alacritty/src/display/content.rs @@ -191,6 +191,7 @@ pub struct RenderableCell { pub graphic: Option<GraphicCell>, pub fg: Rgb, pub bg: Rgb, + pub sp: Rgb, // Special pub bg_alpha: f32, pub flags: Flags, } @@ -200,6 +201,11 @@ impl RenderableCell { // Lookup RGB values. let mut fg = Self::compute_fg_rgb(content, cell.fg, cell.flags); let mut bg = Self::compute_bg_rgb(content, cell.bg); + let mut sp = if cell.sp == Color::Named(NamedColor::Foreground) { + fg + } else { + Self::compute_bg_rgb(content, cell.sp) + }; let mut bg_alpha = if cell.flags.contains(Flags::INVERSE) { mem::swap(&mut fg, &mut bg); @@ -266,6 +272,7 @@ impl RenderableCell { point, fg, bg, + sp, } } @@ -274,7 +281,13 @@ impl RenderableCell { self.bg_alpha == 0. && self.character == ' ' && self.zerowidth.is_none() - && !self.flags.intersects(Flags::UNDERLINE | Flags::STRIKEOUT | Flags::DOUBLE_UNDERLINE) + && !self.flags.intersects( + Flags::UNDERLINE | + Flags::STRIKEOUT | + Flags::DOUBLE_UNDERLINE | + Flags::UNDERCURL | + Flags::OVERLINE | + Flags::DOTTED_UNDERLINE) } /// Apply [`CellRgb`] colors to the cell's colors. |