From feccbfb6be9da70f87ac89684f3dca23da3b9947 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 19 Nov 2021 16:35:08 -0500 Subject: fix another attribute issue with cursor_state_formatted --- src/grid.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/grid.rs b/src/grid.rs index f550f9e..970909c 100644 --- a/src/grid.rs +++ b/src/grid.rs @@ -357,10 +357,23 @@ impl Grid { crate::term::MoveTo::new(pos).write_buf(contents); } contents.push(b' '); + // we know that the cell has no contents, but it still may + // have drawing attributes (background color, etc) + let end_cell = self.visible_cell(pos).unwrap(); + end_cell.attrs().write_escape_code_diff( + contents, + &prev_attrs.unwrap_or_default(), + ); crate::term::SaveCursor::default().write_buf(contents); crate::term::Backspace::default().write_buf(contents); crate::term::EraseChar::new(1).write_buf(contents); crate::term::RestoreCursor::default().write_buf(contents); + if let Some(prev_attrs) = prev_attrs { + prev_attrs.write_escape_code_diff( + contents, + end_cell.attrs(), + ); + } } } } else if let Some(prev_pos) = prev_pos { -- cgit v1.2.3-54-g00ecf