aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-11-19 16:35:08 -0500
committerJesse Luehrs <doy@tozt.net>2021-11-19 16:35:08 -0500
commitfeccbfb6be9da70f87ac89684f3dca23da3b9947 (patch)
treedc0f7d7f0549ed5cc707182e72fc469a642843cd /src
parent073bcb868df8eea8504526f11bce9f831de06e67 (diff)
downloadvt100-rust-feccbfb6be9da70f87ac89684f3dca23da3b9947.tar.gz
vt100-rust-feccbfb6be9da70f87ac89684f3dca23da3b9947.zip
fix another attribute issue with cursor_state_formatted
Diffstat (limited to 'src')
-rw-r--r--src/grid.rs13
1 files changed, 13 insertions, 0 deletions
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 {