diff options
| author | Aram Drevekenin <aram@poor.dev> | 2021-04-09 15:00:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-09 15:00:18 +0200 |
| commit | f23118a20afc8fc289309ed71df2fbad26bae0e7 (patch) | |
| tree | 93ccc76effc892ba0a278ee842a93cbdae3a1453 /src | |
| parent | feat(controls): add quick navigation (#260) (diff) | |
| download | sl0ppij-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.rs | 17 |
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(); + } + _ => {} } } } |
