From: Ray Strode Date: Tue, 6 Oct 2009 20:47:41 +0000 (-0400) Subject: [main] clean up terminal when done with it X-Git-Tag: 0.8.0~172 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=adf98f119b5f06c238b86860f690fe2af608d57f;p=thirdparty%2Fplymouth.git [main] clean up terminal when done with it Before we were relying on the renderer to clean up the terminal, which was wrong. --- diff --git a/src/main.c b/src/main.c index e827da42..31f2b1e2 100644 --- a/src/main.c +++ b/src/main.c @@ -94,6 +94,7 @@ typedef struct ply_command_parser_t *command_parser; ply_mode_t mode; ply_renderer_t *renderer; + ply_terminal_t *terminal; ply_trigger_t *quit_trigger; @@ -608,6 +609,13 @@ quit_splash (state_t *state) state->renderer = NULL; } + if (state->terminal != NULL) + { + ply_terminal_close (state->terminal); + ply_terminal_free (state->terminal); + state->terminal = NULL; + } + ply_trace ("removing displays and keyboard"); remove_displays_and_keyboard (state); @@ -935,6 +943,8 @@ add_display_and_keyboard_for_terminal (state_t *state, return; } + state->terminal = terminal; + ply_console_set_active_vt (state->console, ply_terminal_get_vt_number (terminal)); @@ -1005,6 +1015,8 @@ add_default_displays_and_keyboard (state_t *state) return; } + state->terminal = terminal; + keyboard = ply_keyboard_new_for_renderer (renderer); set_keyboard (state, keyboard);