1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-26 15:21:51 -08:00

* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'

for explicit `font' parameters.
* frame.c (x_set_font): Remove unexplained call to fix inf-recursion.
This commit is contained in:
Stefan Monnier 2008-06-20 01:53:32 +00:00
parent 22e64f7c64
commit 770e2e6ed8
4 changed files with 33 additions and 10 deletions

View file

@ -1,3 +1,10 @@
2008-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
for explicit `font' parameters.
* frame.c (x_set_font): Remove unexplained call to fix inf-recursion.
2008-06-19 Kenichi Handa <handa@m17n.org>
* frame.c: Include <ctype.h>.

View file

@ -3400,7 +3400,13 @@ x_set_font (f, arg, oldval)
if (FRAME_FACE_CACHE (f))
{
XSETFRAME (frame, f);
call1 (Qface_set_after_frame_default, frame);
/* We used to call face-set-after-frame-default here, but it leads to
recursive calls (since that function can set the `default' face's
font which in turns changes the frame's `font' parameter).
Also I don't know what this call is meant to do, but it seems the
wrong way to do it anyway (it does a lot more work than what seems
reasonable in response to a change to `font'). */
/* call1 (Qface_set_after_frame_default, frame); */
}
}

View file

@ -4274,8 +4274,13 @@ x_default_font_parameter (f, parms)
Lisp_Object parms;
{
struct w32_display_info *dpyinfo = FRAME_W32_DISPLAY_INFO (f);
Lisp_Object font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font",
RES_TYPE_STRING);
Lisp_Object font_param = x_get_arg (dpyinfo, parms, Qfont, NULL, NULL,
RES_TYPE_STRING);
Lisp_Object font;
if (EQ (font_param, Qunbound))
font_param = Qnil;
font = !NILP (font_param) ? font_param
: x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING);
if (!STRINGP (font))
{
@ -4296,12 +4301,12 @@ x_default_font_parameter (f, parms)
if (NILP (font))
error ("No suitable font was found");
}
else
else if (!NILP (font_param))
{
/* Remember the explicit font parameter, so we can re-apply it after
we've applied the `default' face settings. */
x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font), Qnil));
}
x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font_param), Qnil));
}
x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING);
}

View file

@ -3060,8 +3060,13 @@ x_default_font_parameter (f, parms)
Lisp_Object parms;
{
struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
Lisp_Object font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font",
Lisp_Object font_param = x_get_arg (dpyinfo, parms, Qfont, NULL, NULL,
RES_TYPE_STRING);
Lisp_Object font;
if (EQ (font_param, Qunbound))
font_param = Qnil;
font = !NILP (font_param) ? font_param
: x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING);
if (! STRINGP (font))
{
@ -3088,12 +3093,12 @@ x_default_font_parameter (f, parms)
if (NILP (font))
error ("No suitable font was found");
}
else
else if (!NILP (font_param))
{
/* Remember the explicit font parameter, so we can re-apply it after
we've applied the `default' face settings. */
x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font), Qnil));
}
x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font_param), Qnil));
}
x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING);
}