aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Linford <tlinford@users.noreply.github.com>2022-01-26 18:50:29 +0100
committerGitHub <noreply@github.com>2022-01-26 18:50:29 +0100
commitcf22e1f50ef72101835faefd75567238fda3ffb5 (patch)
tree1baa8a7934ffe922dc4cec239d4d310a436ad611
parentdocs(changelog): scroll by page up/down fix (diff)
downloadsl0ppij-cf22e1f50ef72101835faefd75567238fda3ffb5.tar.gz
sl0ppij-cf22e1f50ef72101835faefd75567238fda3ffb5.tar.xz
sl0ppij-cf22e1f50ef72101835faefd75567238fda3ffb5.zip
fix(compatibility): handle csi erase param 3 (#1026)
-rw-r--r--zellij-server/src/panes/grid.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/zellij-server/src/panes/grid.rs b/zellij-server/src/panes/grid.rs
index 5db11671..bd898aa6 100644
--- a/zellij-server/src/panes/grid.rs
+++ b/zellij-server/src/panes/grid.rs
@@ -1145,6 +1145,11 @@ impl Grid {
}
self.output_buffer.update_all_lines();
}
+ fn clear_lines_above(&mut self) {
+ self.lines_above.clear();
+ self.scrollback_buffer_lines = self.recalculate_scrollback_buffer_count();
+ }
+
fn pad_current_line_until(&mut self, position: usize) {
let current_row = self.viewport.get_mut(self.cursor.y).unwrap();
for _ in current_row.len()..position {
@@ -1765,6 +1770,8 @@ impl Perform for Grid {
self.clear_all_before_cursor(char_to_replace);
} else if clear_type == 2 {
self.fill_viewport(char_to_replace);
+ } else if clear_type == 3 {
+ self.clear_lines_above();
}
};
} else if c == 'H' || c == 'f' {