From: Po Lu Date: Sun, 20 Mar 2022 05:51:19 +0000 (+0000) Subject: Implement `haiku_delete_terminal' X-Git-Tag: emacs-29.0.90~1931^2~1034 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a232a8a22c6a228d871ff8df7cd25b0cabe3e5fb;p=emacs.git Implement `haiku_delete_terminal' * src/haikuterm.c (haiku_delete_terminal): Actually delete the terminal instead of aborting. --- 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 *