aboutsummaryrefslogtreecommitdiffstats
path: root/src/xterm.c
diff options
context:
space:
mode:
authorKarl Heuer <[email protected]>1995-05-24 20:37:08 +0000
committerKarl Heuer <[email protected]>1995-05-24 20:37:08 +0000
commit07a7096a4b9c9214062a95001e1653e30a173aae (patch)
tree28f0ad91dc21a824e5785d98a7fdc7bd39b9c790 /src/xterm.c
parent50d326a456d8770f4c02190e4b72422c21b6ac9a (diff)
(x_connection_closed): Unblock input, first thing.
Set Vdefault_minibuffer_frame to t before deleting a frame that might have its own minibuffer.
Diffstat (limited to 'src/xterm.c')
-rw-r--r--src/xterm.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/xterm.c b/src/xterm.c
index cf6f698779..da83bf51b8 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -4352,6 +4352,11 @@ x_connection_closed (display, error_message)
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 @@ x_connection_closed (display, error_message)
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);