diff --git a/src/config/options.inc b/src/config/options.inc index 67c49536..150031d5 100644 --- a/src/config/options.inc +++ b/src/config/options.inc @@ -1192,6 +1192,10 @@ static struct option_info config_options_info[] = { "sessions", OPT_SORT, N_("Sessions settings.")), + INIT_OPT_BOOL("ui.sessions", N_("Keep session active"), + "keep_session_active", 0, 0, + N_("Keep the session active even if the last terminal exits.")), + INIT_OPT_BOOL("ui.sessions", N_("Auto save session"), "auto_save", 0, 0, N_("Automatically save the session when quitting.\n" diff --git a/src/terminal/terminal.c b/src/terminal/terminal.c index e1896350..b71683a4 100644 --- a/src/terminal/terminal.c +++ b/src/terminal/terminal.c @@ -15,6 +15,7 @@ #include "elinks.h" #include "bookmarks/bookmarks.h" +#include "config/options.h" #include "intl/gettext/libintl.h" #include "main/main.h" #include "main/object.h" @@ -161,7 +162,8 @@ destroy_all_terminals(void) static void check_if_no_terminal(void) { - program.terminate = list_empty(terminals); + program.terminate = list_empty(terminals) + && !get_opt_bool("ui.sessions.keep_session_active"); } void