diff options
| author | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-02-10 21:56:38 +0000 |
|---|---|---|
| committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-02-10 21:56:38 +0000 |
| commit | c53956feade4a83a7f3a18379aa83657f8976aa1 (patch) | |
| tree | 257f9db5691c03795986df1a44c9449127309521 /src/frame.c | |
| parent | f1914c4078082de71933f6cdf7735411e488d045 (diff) | |
| download | emacs-c53956feade4a83a7f3a18379aa83657f8976aa1.tar.gz | |
* frame.c (Qnoelisp): New symbol.
(syms_of_frame): Initialize it.
(Fdelete_frame): Use it to distinguish a mere `force' passed from
someharmles Elisp code, from a strong `force' from x_connection_closed.
* frame.h (Qnoelisp): Declare.
* xterm.c (x_connection_closed): Pass `noelisp'.
Diffstat (limited to 'src/frame.c')
| -rw-r--r-- | src/frame.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/frame.c b/src/frame.c index fec911f4b0c..3328b307cbf 100644 --- a/src/frame.c +++ b/src/frame.c @@ -76,6 +76,7 @@ Lisp_Object Qx, Qw32, Qmac, Qpc; Lisp_Object Qvisible; Lisp_Object Qdisplay_type; Lisp_Object Qbackground_mode; +Lisp_Object Qnoelisp; Lisp_Object Qx_frame_parameter; Lisp_Object Qx_resource_name; @@ -1406,10 +1407,10 @@ But FORCE inhibits this too. */) } /* Run `delete-frame-functions' - unless FORCE is true or frame is a tooltip. - FORCE is set when handling a disconnect from the terminal, + unless FORCE is `noelisp' or frame is a tooltip. + FORCE is set to `noelisp' when handling a disconnect from the terminal, so we don't dare call Lisp code. */ - if (!NILP (Vrun_hooks) && NILP (force) + if (!NILP (Vrun_hooks) && EQ (force, Qnoelisp) && NILP (Fframe_parameter (frame, intern ("tooltip")))) { Lisp_Object args[2]; @@ -4395,6 +4396,8 @@ syms_of_frame () staticpro (&Qdisplay_type); Qbackground_mode = intern ("background-mode"); staticpro (&Qbackground_mode); + Qnoelisp = intern ("noelisp"); + staticpro (&Qnoelisp); Qtty_color_mode = intern ("tty-color-mode"); staticpro (&Qtty_color_mode); Qtty = intern ("tty"); |
