tui: Port improvement from ratatui on crossterm 0.28 (https://github.com/ratatui-org/ratatui/pull/1072)

This commit is contained in:
Blaž Hrastnik 2024-08-07 04:30:38 +09:00
parent 92a87dbc31
commit 70918570a9

View File

@ -8,8 +8,8 @@
}, },
execute, queue, execute, queue,
style::{ style::{
Attribute as CAttribute, Color as CColor, Print, SetAttribute, SetBackgroundColor, Attribute as CAttribute, Color as CColor, Colors, Print, SetAttribute, SetBackgroundColor,
SetForegroundColor, SetColors, SetForegroundColor,
}, },
terminal::{self, Clear, ClearType}, terminal::{self, Clear, ClearType},
Command, Command,
@ -260,14 +260,12 @@ fn draw<'a, I>(&mut self, content: I) -> io::Result<()>
diff.queue(&mut self.buffer)?; diff.queue(&mut self.buffer)?;
modifier = cell.modifier; modifier = cell.modifier;
} }
if cell.fg != fg { if cell.fg != fg || cell.bg != bg {
let color = CColor::from(cell.fg); queue!(
queue!(self.buffer, SetForegroundColor(color))?; self.buffer,
SetColors(Colors::new(cell.fg.into(), cell.bg.into()))
)?;
fg = cell.fg; fg = cell.fg;
}
if cell.bg != bg {
let color = CColor::from(cell.bg);
queue!(self.buffer, SetBackgroundColor(color))?;
bg = cell.bg; bg = cell.bg;
} }