# HG changeset patch # User Karl Heuer # Date 801347828 0 # Node ID 0d37c1e81c0d29b52620b2d9a451de1a197f7cc6 # Parent 5d0ad882565cbfe85e1093f44a26fb97a05874d6 (x_connection_closed): Unblock input, first thing. Set Vdefault_minibuffer_frame to t before deleting a frame that might have its own minibuffer. diff -r 5d0ad882565c -r 0d37c1e81c0d src/xterm.c --- a/src/xterm.c Wed May 24 20:17:16 1995 +0000 +++ b/src/xterm.c Wed May 24 20:37:08 1995 +0000 @@ -4352,6 +4352,11 @@ struct x_display_info *dpyinfo = x_display_info_for_display (display); Lisp_Object frame, tail; + /* Whatever we were in the middle of, we are going to throw out of it, + so reassure various things that have error checks about being + called with input blocked. */ + TOTALLY_UNBLOCK_INPUT; + if (_Xdebug) abort (); @@ -4375,7 +4380,12 @@ FOR_EACH_FRAME (tail, frame) if (FRAME_X_P (XFRAME (frame)) && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo) - Fdelete_frame (frame, Qt); + { + /* Set this to t so that Fdelete_frame won't get confused + trying to find a replacement. */ + FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt; + Fdelete_frame (frame, Qt); + } x_delete_display (dpyinfo);