Mercurial > emacs
changeset 47731:755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
(syms_of_frame): Initialize and defvar it.
(Fdelete_frame): Use it instead of delete-frame-hook. Don't run
it when frame's `tooltip' parameter is non-nil.
* xfns.c (x_create_tip_frame): Set `tooltip' frame parameter to t.
* w32fns.c (x_create_tip_frame): Likewise
* macfns.c (x_create_tip_frame): Likewise.
author | John Paul Wallington <jpw@pobox.com> |
---|---|
date | Wed, 02 Oct 2002 08:28:17 +0000 |
parents | 2568d5a27317 |
children | 3712c799f805 |
files | src/ChangeLog src/frame.c src/macfns.c src/w32fns.c src/xfns.c |
diffstat | 5 files changed, 43 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Tue Oct 01 20:27:23 2002 +0000 +++ b/src/ChangeLog Wed Oct 02 08:28:17 2002 +0000 @@ -1,3 +1,16 @@ +2002-10-02 John Paul Wallington <jpw@shootybangbang.com> + + * frame.c (Vdelete_frame_functions): New variable. + (syms_of_frame): Initialize and defvar it. + (Fdelete_frame): Use it instead of delete-frame-hook. Don't run + it when frame's `tooltip' parameter is non-nil. + + * xfns.c (x_create_tip_frame): Set `tooltip' frame parameter to t. + + * w32fns.c (x_create_tip_frame): Likewise + + * macfns.c (x_create_tip_frame): Likewise. + 2002-09-30 Kenichi Handa <handa@m17n.org> * xterm.c (x_encode_char): For DIM=1 charset, set ccl->reg[2] to
--- a/src/frame.c Tue Oct 01 20:27:23 2002 +0000 +++ b/src/frame.c Wed Oct 02 08:28:17 2002 +0000 @@ -80,6 +80,7 @@ Lisp_Object Vdefault_frame_alist; Lisp_Object Vmouse_position_function; Lisp_Object Vmouse_highlight; +Lisp_Object Vdelete_frame_functions; static void set_menu_bar_lines_1 (window, n) @@ -1092,8 +1093,9 @@ Normally, you may not delete a frame if all other frames are invisible, but if the second optional argument FORCE is non-nil, you may do so. -This function runs `delete-frame-hook' before actually deleting the -frame. The hook is called with one argument FRAME. */) +This function runs `delete-frame-functions' before actually deleting the +frame, unless the frame is a tooltip. +The functions are run with one arg, the frame to be deleted. */) (frame, force) Lisp_Object frame, force; { @@ -1152,11 +1154,12 @@ } } - /* Run `delete-frame-hook'. */ - if (!NILP (Vrun_hooks)) + /* Run `delete-frame-functions' unless frame is a tooltip. */ + if (!NILP (Vrun_hooks) + && NILP (Fframe_parameter (frame, intern ("tooltip")))) { Lisp_Object args[2]; - args[0] = intern ("delete-frame-hook"); + args[0] = intern ("delete-frame-functions"); args[1] = frame; Frun_hook_with_args (2, args); } @@ -2529,6 +2532,12 @@ when the mouse is over clickable text. */); Vmouse_highlight = Qt; + DEFVAR_LISP ("delete-frame-functions", &Vdelete_frame_functions, + doc: /* Functions to be run before deleting a frame. +The functions are run with one arg, the frame to be deleted. +See `delete-frame'. */); + Vdelete_frame_functions = Qnil; + DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame, doc: /* Minibufferless frames use this frame's minibuffer.
--- a/src/macfns.c Tue Oct 01 20:27:23 2002 +0000 +++ b/src/macfns.c Wed Oct 02 08:28:17 2002 +0000 @@ -9471,6 +9471,11 @@ f->height = 0; SET_FRAME_WIDTH (f, 0); change_frame_size (f, height, width, 1, 0, 0); + + /* Add `tooltip' frame parameter's default value. */ + if (NILP (Fframe_parameter (frame, intern ("tooltip")))) + Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), + Qnil)); f->no_split = 1;
--- a/src/w32fns.c Tue Oct 01 20:27:23 2002 +0000 +++ b/src/w32fns.c Wed Oct 02 08:28:17 2002 +0000 @@ -13812,6 +13812,11 @@ SET_FRAME_WIDTH (f, 0); change_frame_size (f, height, width, 1, 0, 0); + /* Add `tooltip' frame parameter's default value. */ + if (NILP (Fframe_parameter (frame, intern ("tooltip")))) + Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), + Qnil)); + /* Set up faces after all frame parameters are known. This call also merges in face attributes specified for new frames.
--- a/src/xfns.c Tue Oct 01 20:27:23 2002 +0000 +++ b/src/xfns.c Wed Oct 02 08:28:17 2002 +0000 @@ -11143,7 +11143,12 @@ f->height = 0; SET_FRAME_WIDTH (f, 0); change_frame_size (f, height, width, 1, 0, 0); - + + /* Add `tooltip' frame parameter's default value. */ + if (NILP (Fframe_parameter (frame, intern ("tooltip")))) + Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), + Qnil)); + /* Set up faces after all frame parameters are known. This call also merges in face attributes specified for new frames.