From a232a8a22c6a228d871ff8df7cd25b0cabe3e5fb Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sun, 20 Mar 2022 05:51:19 +0000 Subject: [PATCH] Implement `haiku_delete_terminal' * src/haikuterm.c (haiku_delete_terminal): Actually delete the terminal instead of aborting. --- src/haikuterm.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/haikuterm.c b/src/haikuterm.c index 4ae64129ef1..221bdfd2ee1 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -115,7 +115,25 @@ haiku_toolkit_position (struct frame *f, int x, int y, static void haiku_delete_terminal (struct terminal *terminal) { - emacs_abort (); + struct haiku_display_info *dpyinfo = terminal->display_info.haiku; + struct terminal *t; + + if (!terminal->name) + return; + + block_input (); + be_app_quit (); + + /* Close all frames and delete the generic struct terminal. */ + for (t = terminal_list; t; t = t->next_terminal) + { + if (t->type == output_haiku && t->display_info.haiku == dpyinfo) + { + delete_terminal (t); + break; + } + } + unblock_input (); } static const char * -- 2.39.2