diff options
| author | Kenichi Handa | 1997-08-10 04:13:19 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1997-08-10 04:13:19 +0000 |
| commit | f64a355ce069502069596b742b0d9d8312581dd2 (patch) | |
| tree | b61debf3237aa6cceadf00daa7cf5353114d10e3 | |
| parent | 33a46dbc7865c10f9abb7fec647ea08f7f20e7fc (diff) | |
| download | emacs-f64a355ce069502069596b742b0d9d8312581dd2.tar.gz emacs-f64a355ce069502069596b742b0d9d8312581dd2.zip | |
(dumpglyphs): Pay attention to
Vignore_relative_composition.
| -rw-r--r-- | src/xterm.c | 31 |
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) |