# HG changeset patch # User Richard M. Stallman # Date 756607165 0 # Node ID 5831f83a0afef1ce21101d3f6bf3870cade33d2d # Parent db2e7e6a488e9c0d90b3be4ec348269b79d25cef (kbd_buffer_get_event): For delete-window-event, do count iconified frames. diff -r db2e7e6a488e -r 5831f83a0afe src/keyboard.c --- a/src/keyboard.c Thu Dec 23 00:22:10 1993 +0000 +++ b/src/keyboard.c Thu Dec 23 00:39:25 1993 +0000 @@ -1942,11 +1942,22 @@ #ifdef HAVE_X11 else if (event->kind == delete_window_event) { - Lisp_Object value; - - /* If the user destroys the only frame, Emacs should exit. */ - value = Fvisible_frame_list (); - if (! CONSP (value) || ! CONSP (XCONS (value)->cdr)) + Lisp_Object tail, frame; + struct frame *f; + + /* If the user destroys the only frame, Emacs should exit. + Count visible frames and iconified frames. */ + for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) + { + frame = XCONS (tail)->car; + if (XTYPE (frame) != Lisp_Frame || EQ (frame, event->frame_or_window)) + continue; + f = XFRAME (frame); + if (FRAME_VISIBLE_P (f) || FRAME_ICONIFIED_P (f)) + break; + } + + if (! CONSP (tail)) kill (getpid (), SIGHUP); Fdelete_frame (event->frame_or_window, Qt);