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 <dh.herrmann@googlemail.com>
This commit is contained in:
parent
bf3415c5b4
commit
6bf4723b04
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user