From 6fb13182e0ded0ed4aeb469ba04ba265ca6d722e Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Tue, 17 Aug 1999 13:02:04 +0000 Subject: [PATCH] (expose_area): If row extends face to end of line, write the whole line. --- src/xterm.c | 55 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index 02acfc4b614..57f7e1b8005 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -5173,31 +5173,40 @@ expose_area (w, row, r, area) x = (window_box_width (w, LEFT_MARGIN_AREA) + window_box_width (w, TEXT_AREA)); - /* Find the first glyph that must be redrawn. */ - while (first < end - && x + first->pixel_width < r->x) - { - x += first->pixel_width; - ++first; - } - - /* Find the last one. */ - last = first; - first_x = x; - while (last < end - && x < r->x + r->width) - { - x += last->pixel_width; - ++last; - } - - /* Repaint. */ - if (last > first) - x_draw_glyphs (w, first_x, row, area, - first - row->glyphs[area], - last - row->glyphs[area], + if (area == TEXT_AREA && row->fill_line_p) + /* If row extends face to end of line write the whole line. */ + x_draw_glyphs (w, x, row, area, + 0, row->used[area], row->inverse_p ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT, NULL, NULL, 0); + else + { + /* Find the first glyph that must be redrawn. */ + while (first < end + && x + first->pixel_width < r->x) + { + x += first->pixel_width; + ++first; + } + + /* Find the last one. */ + last = first; + first_x = x; + while (last < end + && x < r->x + r->width) + { + x += last->pixel_width; + ++last; + } + + /* Repaint. */ + if (last > first) + x_draw_glyphs (w, first_x, row, area, + first - row->glyphs[area], + last - row->glyphs[area], + row->inverse_p ? DRAW_INVERSE_VIDEO : DRAW_NORMAL_TEXT, + NULL, NULL, 0); + } } -- 2.39.5