diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c index c1edf49aca7..190aebc8189 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -7728,6 +7728,7 @@ x_connection_closed (dpy, error_message) | |||
| 7728 | struct x_display_info *dpyinfo = x_display_info_for_display (dpy); | 7728 | struct x_display_info *dpyinfo = x_display_info_for_display (dpy); |
| 7729 | Lisp_Object frame, tail; | 7729 | Lisp_Object frame, tail; |
| 7730 | int count; | 7730 | int count; |
| 7731 | int index = SPECPDL_INDEX (); | ||
| 7731 | 7732 | ||
| 7732 | error_msg = (char *) alloca (strlen (error_message) + 1); | 7733 | error_msg = (char *) alloca (strlen (error_message) + 1); |
| 7733 | strcpy (error_msg, error_message); | 7734 | strcpy (error_msg, error_message); |
| @@ -7775,6 +7776,9 @@ x_connection_closed (dpy, error_message) | |||
| 7775 | if (dpyinfo) | 7776 | if (dpyinfo) |
| 7776 | dpyinfo->display = 0; | 7777 | dpyinfo->display = 0; |
| 7777 | 7778 | ||
| 7779 | /* Inhibit redisplay while frames are being deleted. */ | ||
| 7780 | specbind (Qinhibit_redisplay, Qt); | ||
| 7781 | |||
| 7778 | /* First delete frames whose mini-buffers are on frames | 7782 | /* First delete frames whose mini-buffers are on frames |
| 7779 | that are on the dead display. */ | 7783 | that are on the dead display. */ |
| 7780 | FOR_EACH_FRAME (tail, frame) | 7784 | FOR_EACH_FRAME (tail, frame) |
| @@ -7821,6 +7825,7 @@ x_connection_closed (dpy, error_message) | |||
| 7821 | sigunblock (sigmask (SIGALRM)); | 7825 | sigunblock (sigmask (SIGALRM)); |
| 7822 | TOTALLY_UNBLOCK_INPUT; | 7826 | TOTALLY_UNBLOCK_INPUT; |
| 7823 | 7827 | ||
| 7828 | unbind_to (index, Qnil); | ||
| 7824 | clear_waiting_for_input (); | 7829 | clear_waiting_for_input (); |
| 7825 | error ("%s", error_msg); | 7830 | error ("%s", error_msg); |
| 7826 | } | 7831 | } |