aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2021-04-09 15:00:18 +0200
committerGitHub <noreply@github.com>2021-04-09 15:00:18 +0200
commitf23118a20afc8fc289309ed71df2fbad26bae0e7 (patch)
tree93ccc76effc892ba0a278ee842a93cbdae3a1453 /src
parentfeat(controls): add quick navigation (#260) (diff)
downloadsl0ppij-f23118a20afc8fc289309ed71df2fbad26bae0e7.tar.gz
sl0ppij-f23118a20afc8fc289309ed71df2fbad26bae0e7.tar.xz
sl0ppij-f23118a20afc8fc289309ed71df2fbad26bae0e7.zip
fix(compatibility): reset (#261)
Diffstat (limited to 'src')
-rw-r--r--src/client/panes/terminal_pane.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/client/panes/terminal_pane.rs b/src/client/panes/terminal_pane.rs
index 13575475..0702863a 100644
--- a/src/client/panes/terminal_pane.rs
+++ b/src/client/panes/terminal_pane.rs
@@ -379,6 +379,13 @@ impl TerminalPane {
self.grid.rotate_scroll_region_down(count);
self.mark_for_rerender();
}
+ fn reset_terminal_state(&mut self) {
+ let rows = self.get_rows();
+ let columns = self.get_columns();
+ self.grid = Grid::new(rows, columns);
+ self.alternative_grid = None;
+ self.cursor_key_mode = false;
+ }
fn add_newline(&mut self) {
let pad_character = EMPTY_TERMINAL_CHARACTER;
self.grid.add_canonical_line(pad_character);
@@ -678,8 +685,14 @@ impl vte::Perform for TerminalPane {
}
fn esc_dispatch(&mut self, intermediates: &[u8], _ignore: bool, byte: u8) {
- if let (b'M', None) = (byte, intermediates.get(0)) {
- self.grid.move_cursor_up_with_scrolling(1);
+ match (byte, intermediates.get(0)) {
+ (b'M', None) => {
+ self.grid.move_cursor_up_with_scrolling(1);
+ }
+ (b'c', None) => {
+ self.reset_terminal_state();
+ }
+ _ => {}
}
}
}