Mercurial > emacs
changeset 109290:1b5ca039f5f2
Fix faulty `if' statement in delete_frame.
* frame.c (Qtooltip): New var.
(delete_frame): Use it. Fix faulty if statement. Don't update
mode line for tooltip frames. Suggested by Martin Rudalics.
* xfns.c (x_create_tip_frame):
* w32fns.c (x_create_tip_frame): Use it.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Fri, 02 Jul 2010 12:35:08 -0400 |
parents | ef318d39a3e6 |
children | 35d06d80fc61 69cc7cbe898b |
files | src/ChangeLog src/frame.c src/w32fns.c src/xfns.c |
diffstat | 4 files changed, 25 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Wed Jun 30 15:03:07 2010 -0700 +++ b/src/ChangeLog Fri Jul 02 12:35:08 2010 -0400 @@ -1,3 +1,12 @@ +2010-07-02 Chong Yidong <cyd@stupidchicken.com> + + * frame.c (Qtooltip): New var. + (delete_frame): Use it. Fix faulty if statement. Don't update + mode line for tooltip frames. Suggested by Martin Rudalics. + + * xfns.c (x_create_tip_frame): + * w32fns.c (x_create_tip_frame): Use it. + 2010-06-30 Naohiro Aota <naota@elisp.net> (tiny change) * xftfont.c (xftfont_open): Check font width one by one also when
--- a/src/frame.c Wed Jun 30 15:03:07 2010 -0700 +++ b/src/frame.c Fri Jul 02 12:35:08 2010 -0400 @@ -100,6 +100,7 @@ Lisp_Object Qheight, Qwidth; Lisp_Object Qleft, Qright; Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name; +Lisp_Object Qtooltip; Lisp_Object Qinternal_border_width; Lisp_Object Qmouse_color; Lisp_Object Qminibuffer; @@ -1329,7 +1330,7 @@ struct frame *sf = SELECTED_FRAME (); struct kboard *kb; - int minibuffer_selected; + int minibuffer_selected, tooltip_frame; if (EQ (frame, Qnil)) { @@ -1381,13 +1382,15 @@ } } + tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip"))); + /* Run `delete-frame-functions' 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 (Fframe_parameter (frame, intern ("tooltip")))) + if (NILP (Vrun_hooks) || tooltip_frame) ; - if (EQ (force, Qnoelisp)) + else if (EQ (force, Qnoelisp)) pending_funcalls = Fcons (list3 (Qrun_hook_with_args, Qdelete_frame_functions, frame), pending_funcalls); @@ -1633,7 +1636,8 @@ } /* Cause frame titles to update--necessary if we now have just one frame. */ - update_mode_lines = 1; + if (!tooltip_frame) + update_mode_lines = 1; return Qnil; } @@ -4451,6 +4455,8 @@ staticpro (&Qicon_left); Qicon_top = intern_c_string ("icon-top"); staticpro (&Qicon_top); + Qtooltip = intern_c_string ("tooltip"); + staticpro (&Qtooltip); Qleft = intern_c_string ("left"); staticpro (&Qleft); Qright = intern_c_string ("right");
--- a/src/w32fns.c Wed Jun 30 15:03:07 2010 -0700 +++ b/src/w32fns.c Fri Jul 02 12:35:08 2010 -0400 @@ -5584,9 +5584,8 @@ 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)); + if (NILP (Fframe_parameter (frame, Qtooltip))) + Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, 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 Wed Jun 30 15:03:07 2010 -0700 +++ b/src/xfns.c Fri Jul 02 12:35:08 2010 -0400 @@ -205,6 +205,8 @@ /* The below are defined in frame.c. */ +extern Lisp_Object Qtooltip; + #if GLYPH_DEBUG int image_cache_refcount, dpyinfo_refcount; #endif @@ -4914,9 +4916,8 @@ 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)); + if (NILP (Fframe_parameter (frame, Qtooltip))) + Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil)); /* FIXME - can this be done in a similar way to normal frames? http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */