From e69a00b7497cbd826071e453f7ada164cecc98da Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Oct 2008 04:08:08 +0000 Subject: [PATCH] (Finternal_set_lisp_face_attribute): If the font is to be updated, clear its average width field too. --- src/xfaces.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/xfaces.c b/src/xfaces.c index aa3041d6910..196abe11dd7 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -3356,12 +3356,16 @@ FRAME 0 means change the face on all frames, and change the default signal_error ("Invalid face attribute name", attr); if (prop_index) - /* If a font-related attribute other than QCfont and QCfontset is - specified, and if the original QCfont attribute has a font - (font-spec or font-object), set the corresponding property in - the font to nil so that the font selector doesn't think that - the attribute is mandatory. */ - font_clear_prop (XVECTOR (lface)->contents, prop_index); + { + /* If a font-related attribute other than QCfont and QCfontset + is specified, and if the original QCfont attribute has a font + (font-spec or font-object), set the corresponding property in + the font to nil so that the font selector doesn't think that + the attribute is mandatory. Also, clear the average + width. */ + font_clear_prop (XVECTOR (lface)->contents, prop_index); + font_clear_prop (XVECTOR (lface)->contents, FONT_AVGWIDTH_INDEX); + } /* Changing a named face means that all realized faces depending on that face are invalid. Since we cannot tell which realized faces