Mercurial > emacs
changeset 25306:5bcee7af1643
(expose_area): If row extends face to end of line,
write the whole line.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Tue, 17 Aug 1999 13:02:04 +0000 |
parents | 273b3c17ce68 |
children | 91079038d4a3 |
files | src/xterm.c |
diffstat | 1 files changed, 32 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xterm.c Tue Aug 17 00:46:09 1999 +0000 +++ b/src/xterm.c Tue Aug 17 13:02:04 1999 +0000 @@ -5173,31 +5173,40 @@ 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); + } }