summaryrefslogtreecommitdiff
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2005-06-17 14:03:08 +0000
committerRichard M. Stallman <rms@gnu.org>2005-06-17 14:03:08 +0000
commit5f81871efe4ff488329685bbf65ab81db9c92768 (patch)
tree95b60cf013db0f4332605540397feebb38840596 /src/dispnew.c
parentc68b9c2ffe50e1245136b6ce15d55a197ed8e708 (diff)
downloademacs-5f81871efe4ff488329685bbf65ab81db9c92768.tar.gz
emacs-5f81871efe4ff488329685bbf65ab81db9c92768.tar.bz2
emacs-5f81871efe4ff488329685bbf65ab81db9c92768.zip
(spec_glyph_lookup_face): New function.
(build_frame_matrix_from_leaf_window): Use it.
Diffstat (limited to 'src/dispnew.c')
-rw-r--r--src/dispnew.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index 6d851ba8471..727547d089d 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -2722,6 +2722,7 @@ build_frame_matrix_from_leaf_window (frame_matrix, w)
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 @@ build_frame_matrix_from_leaf_window (frame_matrix, w)
}
}
+/* 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.