[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 59d109b73c 1/2: Fix display disconnect when tooltip frame is aliv
From: |
Po Lu |
Subject: |
master 59d109b73c 1/2: Fix display disconnect when tooltip frame is alive |
Date: |
Sat, 2 Jul 2022 09:57:11 -0400 (EDT) |
branch: master
commit 59d109b73c48ca41d240f1fbe10f7349e9df4e31
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix display disconnect when tooltip frame is alive
* src/xterm.c (x_connection_closed): Don't dereference nil when
loop finds a tooltip frame.
---
src/xterm.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/xterm.c b/src/xterm.c
index 2629997f2a..0c695324f3 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -23280,6 +23280,7 @@ x_connection_closed (Display *dpy, const char
*error_message, bool ioerror)
Emacs_XIOErrorHandler io_error_handler;
xm_drop_start_message dmsg;
struct frame *f;
+ Lisp_Object minibuf_frame, tmp;
dpyinfo = x_display_info_for_display (dpy);
error_msg = alloca (strlen (error_message) + 1);
@@ -23379,9 +23380,14 @@ x_connection_closed (Display *dpy, const char
*error_message, bool ioerror)
that are on the dead display. */
FOR_EACH_FRAME (tail, frame)
{
- Lisp_Object minibuf_frame;
+ /* Tooltip frames don't have these, so avoid crashing. */
+
+ if (FRAME_TOOLTIP_P (XFRAME (frame)))
+ continue;
+
minibuf_frame
= WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
+
if (FRAME_X_P (XFRAME (frame))
&& FRAME_X_P (XFRAME (minibuf_frame))
&& ! EQ (frame, minibuf_frame)
@@ -23432,11 +23438,8 @@ For details, see etc/PROBLEMS.\n",
/* We have just closed all frames on this display. */
emacs_abort ();
- {
- Lisp_Object tmp;
- XSETTERMINAL (tmp, dpyinfo->terminal);
- Fdelete_terminal (tmp, Qnoelisp);
- }
+ XSETTERMINAL (tmp, dpyinfo->terminal);
+ Fdelete_terminal (tmp, Qnoelisp);
}
unblock_input ();