Mercurial > emacs
changeset 63547:cbb687cf8169
(spec_glyph_lookup_face): New function.
(build_frame_matrix_from_leaf_window): Use it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 17 Jun 2005 14:03:08 +0000 |
parents | 119eb8c37b61 |
children | 3a486bf74d99 |
files | src/dispnew.c |
diffstat | 1 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispnew.c Fri Jun 17 14:02:03 2005 +0000 +++ b/src/dispnew.c Fri Jun 17 14:03:08 2005 +0000 @@ -2722,6 +2722,7 @@ right_border_glyph = (dp && INTEGERP (DISP_BORDER_GLYPH (dp)) ? XINT (DISP_BORDER_GLYPH (dp)) : '|'); + right_border_glyph = spec_glyph_lookup_face (w, right_border_glyph); } } else @@ -2802,6 +2803,27 @@ } } +/* Given a user-specified glyph, possibly including a Lisp-level face + ID, return a glyph that has a realized face ID. + This is used for glyphs displayed specially and not part of the text; + for instance, vertical separators, truncation markers, etc. */ + +GLYPH +spec_glyph_lookup_face (w, glyph) + struct window *w; + GLYPH glyph; +{ + int lface_id = FAST_GLYPH_FACE (glyph); + /* Convert the glyph's specified face to a realized (cache) face. */ + if (lface_id > 0) + { + int face_id = merge_faces (XFRAME (w->frame), + Qt, lface_id, DEFAULT_FACE_ID); + glyph + = FAST_MAKE_GLYPH (FAST_GLYPH_CHAR (glyph), face_id); + } + return glyph; +} /* Add spaces to a glyph row ROW in a window matrix.