aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa1997-08-10 04:13:19 +0000
committerKenichi Handa1997-08-10 04:13:19 +0000
commitf64a355ce069502069596b742b0d9d8312581dd2 (patch)
treeb61debf3237aa6cceadf00daa7cf5353114d10e3
parent33a46dbc7865c10f9abb7fec647ea08f7f20e7fc (diff)
downloademacs-f64a355ce069502069596b742b0d9d8312581dd2.tar.gz
emacs-f64a355ce069502069596b742b0d9d8312581dd2.zip
(dumpglyphs): Pay attention to
Vignore_relative_composition.
-rw-r--r--src/xterm.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 8955b345140..be119e24a77 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1013,17 +1013,32 @@ dumpglyphs (f, left, top, gp, n, hl, just_foreground, cmpcharp)
1013 if (relative_compose) 1013 if (relative_compose)
1014 { 1014 {
1015 pcm = PER_CHAR_METRIC (font, x_2byte_buffer + i); 1015 pcm = PER_CHAR_METRIC (font, x_2byte_buffer + i);
1016 if (- pcm->descent >= relative_compose) 1016 if (NILP (Vignore_relative_composition)
1017 || NILP (Faref (Vignore_relative_composition,
1018 make_number (cmpcharp->glyph[gidx]))))
1017 { 1019 {
1018 /* Draw above the current glyphs. */ 1020 if (- pcm->descent >= relative_compose)
1019 y_offset = highest + pcm->descent; 1021 {
1020 highest += pcm->ascent + pcm->descent; 1022 /* Draw above the current glyphs. */
1023 y_offset = highest + pcm->descent;
1024 highest += pcm->ascent + pcm->descent;
1025 }
1026 else if (pcm->ascent <= 0)
1027 {
1028 /* Draw beneath the current glyphs. */
1029 y_offset = lowest - pcm->ascent;
1030 lowest -= pcm->ascent + pcm->descent;
1031 }
1021 } 1032 }
1022 else if (pcm->ascent <= 0) 1033 else
1023 { 1034 {
1024 /* Draw beneath the current glyphs. */ 1035 /* Draw the glyph at normal position. If
1025 y_offset = lowest - pcm->ascent; 1036 it sticks out of HIGHEST or LOWEST,
1026 lowest -= pcm->ascent + pcm->descent; 1037 update them appropriately. */
1038 if (pcm->ascent > highest)
1039 highest = pcm->ascent;
1040 else if (- pcm->descent < lowest)
1041 lowest = - pcm->descent;
1027 } 1042 }
1028 } 1043 }
1029 else if (cmpcharp->cmp_rule) 1044 else if (cmpcharp->cmp_rule)