[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src fontset.c
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] emacs/src fontset.c |
Date: |
Thu, 19 Mar 2009 06:50:42 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kenichi Handa <handa> 09/03/19 06:50:42
Modified files:
src : fontset.c
Log message:
(Fset_fontset_font): When a spec of ASCII font is
changed, use font_load_for_lface to get a new font object. Call
free_realized_fontset after handling ASCII font change.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/fontset.c?cvsroot=emacs&r1=1.164&r2=1.165
Patches:
Index: fontset.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/fontset.c,v
retrieving revision 1.164
retrieving revision 1.165
diff -u -b -r1.164 -r1.165
--- fontset.c 13 Mar 2009 16:14:20 -0000 1.164
+++ fontset.c 19 Mar 2009 06:50:41 -0000 1.165
@@ -1612,39 +1612,42 @@
for (; CONSP (range_list); range_list = XCDR (range_list))
FONTSET_ADD (fontset, XCAR (range_list), font_def, add);
- /* Free all realized fontsets whose base is FONTSET. This way, the
- specified character(s) are surely redisplayed by a correct
- font. */
- free_realized_fontsets (fontset);
-
if (ascii_changed)
{
Lisp_Object tail, frame, alist;
int fontset_id = XINT (FONTSET_ID (fontset));
- alist = Qnil;
FONTSET_ASCII (fontset) = fontname;
name = FONTSET_NAME (fontset);
FOR_EACH_FRAME (tail, frame)
{
FRAME_PTR f = XFRAME (frame);
Lisp_Object font_object;
+ struct face *face;
- if (FRAME_INITIAL_P(f) || FRAME_TERMCAP_P (f))
+ if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f))
continue;
if (fontset_id != FRAME_FONTSET (f))
continue;
+ face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
+ if (face)
+ font_object = font_load_for_lface (f, face->lface, font_spec);
+ else
font_object = font_open_by_spec (f, font_spec);
if (! NILP (font_object))
{
update_auto_fontset_alist (font_object, fontset);
- if (NILP (alist))
- alist = Fcons (Fcons (Qfont, name), Qnil);
+ alist = Fcons (Fcons (Qfont, Fcons (name, font_object)), Qnil);
Fmodify_frame_parameters (frame, alist);
}
}
}
+ /* Free all realized fontsets whose base is FONTSET. This way, the
+ specified character(s) are surely redisplayed by a correct
+ font. */
+ free_realized_fontsets (fontset);
+
return Qnil;
}
- [Emacs-diffs] emacs/src fontset.c, Kenichi Handa, 2009/03/05
- [Emacs-diffs] emacs/src fontset.c, Kenichi Handa, 2009/03/05
- [Emacs-diffs] emacs/src fontset.c, Kenichi Handa, 2009/03/11
- [Emacs-diffs] emacs/src fontset.c, Kenichi Handa, 2009/03/13
- [Emacs-diffs] emacs/src fontset.c, Stefan Monnier, 2009/03/13
- [Emacs-diffs] emacs/src fontset.c,
Kenichi Handa <=
- [Emacs-diffs] emacs/src fontset.c, Kenichi Handa, 2009/03/30