Commit facab5be authored by Christian Duerr's avatar Christian Duerr Committed by GitHub

Reset visible area when RIS is received

When running bash and executing `echo -ne '\033c'`, the terminal should
be cleared. However there was an issue with the visible area not being
cleared, so all the text previously printed would still remain visible.

To fix this, whenever a `reset` call is received now, the complete
visible area is reset to `Cell::default()` (the default Cell) and the
length of the available scrollback history is reset to `0`, which
results in the scrollback history being cleared from the perspective of
the user.

This fixes #1483.
parent 23601fbe
......@@ -413,7 +413,7 @@ impl<T> Grid<T> {
self.cols
}
pub fn reset(&mut self) {
pub fn clear_history(&mut self) {
self.scroll_limit = 0;
}
......
......@@ -1825,7 +1825,8 @@ impl ansi::Handler for Term {
self.colors = self.original_colors;
self.color_modified = [false; color::COUNT];
self.cursor_style = None;
self.grid.reset();
self.grid.clear_history();
self.grid.region_mut(..).each(|c| c.reset(&Cell::default()));
}
#[inline]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment