From f201d7329fae4b5c18ac58afe095c7ee27f1eaca Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Tue, 5 Dec 2000 19:23:21 +0000 Subject: [PATCH] (x_produce_glyphs): If a font for a component of a composition is not found, use 1 pixel dot ascent and 0 dot descent value to avoid displaying terribly tall empty boxes. (expose_area): Pass x-coordinate relative to the exposed area to x_draw_glyphs instead of a window-relative coordinate. --- src/ChangeLog | 8 ++++++++ src/w32term.c | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 93914d08815..52f133910e4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2000-12-05 Jason Rumney + + * w32term.c (x_produce_glyphs): If a font for a component of + a composition is not found, use 1 pixel dot ascent and 0 dot + descent value to avoid displaying terribly tall empty boxes. + (expose_area): Pass x-coordinate relative to the exposed + area to x_draw_glyphs instead of a window-relative coordinate. + 2000-12-05 Gerd Moellmann * keyboard.c (record_char): Don't record identical help-echo diff --git a/src/w32term.c b/src/w32term.c index 23cefb20955..1dbe506371a 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -2287,8 +2287,8 @@ x_produce_glyphs (it) font_type = UNICODE_FONT; /* Initialize the bounding box. */ - pcm = w32_per_char_metric (font, &char2b, font_type); - if (pcm) + if (font_info + && (pcm = w32_per_char_metric (font, &char2b, font_type))) { width = pcm->width; ascent = pcm->ascent; @@ -2352,8 +2352,8 @@ x_produce_glyphs (it) else font_type = UNICODE_FONT; - pcm = w32_per_char_metric (font, &char2b, font_type); - if (pcm) + if (font_info + && (pcm = w32_per_char_metric (font, &char2b, font_type))) { width = pcm->width; ascent = pcm->ascent; @@ -2362,8 +2362,8 @@ x_produce_glyphs (it) else { width = FONT_WIDTH (font); - ascent = FONT_BASE (font); - descent = FONT_DESCENT (font); + ascent = 1; + descent = 0; } if (cmp->method != COMPOSITION_WITH_RULE_ALTCHARS) @@ -5546,7 +5546,7 @@ expose_area (w, row, r, area) /* Repaint. */ if (last > first) - x_draw_glyphs (w, first_x, row, area, + x_draw_glyphs (w, first_x - start_x, row, area, first - row->glyphs[area], last - row->glyphs[area], row->inverse_p ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT, -- 2.39.5