From 6bf4723b04df1db46e7b40b27bbbe74dfb96166d Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Tue, 2 Oct 2012 13:02:44 +0200 Subject: [PATCH] terminal: perform hard-reset on exit Before starting a pty on a terminal, we now perform a hard-reset to avoid any left-overs from the previous pty. Signed-off-by: David Herrmann --- src/terminal.c | 1 + src/tsm_vte.c | 4 ++-- src/tsm_vte.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/terminal.c b/src/terminal.c index d73df10..7a92cac 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -548,6 +548,7 @@ int kmscon_terminal_open(struct kmscon_terminal *term, return -EINVAL; kmscon_pty_close(term->pty); + tsm_vte_hard_reset(term->vte); width = tsm_screen_get_width(term->console); height = tsm_screen_get_height(term->console); ret = kmscon_pty_open(term->pty, width, height); diff --git a/src/tsm_vte.c b/src/tsm_vte.c index 72a214f..155b242 100644 --- a/src/tsm_vte.c +++ b/src/tsm_vte.c @@ -619,7 +619,7 @@ void tsm_vte_reset(struct tsm_vte *vte) reset_state(vte); } -static void hard_reset(struct tsm_vte *vte) +void tsm_vte_hard_reset(struct tsm_vte *vte) { tsm_vte_reset(vte); tsm_screen_erase_screen(vte->con, false); @@ -992,7 +992,7 @@ static void do_esc(struct tsm_vte *vte, uint32_t data) break; case 'c': /* RIS */ /* hard reset */ - hard_reset(vte); + tsm_vte_hard_reset(vte); break; case '7': /* DECSC */ /* save console state */ diff --git a/src/tsm_vte.h b/src/tsm_vte.h index 7c72471..d12b27a 100644 --- a/src/tsm_vte.h +++ b/src/tsm_vte.h @@ -76,6 +76,7 @@ void tsm_vte_unref(struct tsm_vte *vte); int tsm_vte_set_palette(struct tsm_vte *vte, const char *palette); void tsm_vte_reset(struct tsm_vte *vte); +void tsm_vte_hard_reset(struct tsm_vte *vte); void tsm_vte_input(struct tsm_vte *vte, const char *u8, size_t len); bool tsm_vte_handle_keyboard(struct tsm_vte *vte, uint32_t keysym, unsigned int mods, uint32_t unicode); -- 2.7.4