Avoid leaving garbage on screen when using 'raise' display property

* src/xdisp.c (display_line): Reset voffset value of the iterator
when it hits ZV, to avoid "inheriting" it to glyph rows past ZV,
which then leaves stuff on screen that needs to be cleared by
redisplay.  (Bug#25855)
This commit is contained in:
Eli Zaretskii 2017-02-25 13:40:23 +02:00
parent ecbd5f9ac6
commit a3c9a554f1

View file

@ -20733,6 +20733,12 @@ display_line (struct it *it)
}
it->continuation_lines_width = 0;
/* Reset those iterator values set from display property
values. This is for the case when the display property
ends at ZV, and is not a replacing property, so pop_it is
not called. */
it->font_height = Qnil;
it->voffset = 0;
row->ends_at_zv_p = true;
/* A row that displays right-to-left text must always have
its last face extended all the way to the end of line,
@ -20919,6 +20925,8 @@ display_line (struct it *it)
{
row->exact_window_width_line_p = true;
it->continuation_lines_width = 0;
it->font_height = Qnil;
it->voffset = 0;
row->continued_p = false;
row->ends_at_zv_p = true;
}
@ -21236,6 +21244,8 @@ display_line (struct it *it)
if (!get_next_display_element (it))
{
it->continuation_lines_width = 0;
it->font_height = Qnil;
it->voffset = 0;
row->ends_at_zv_p = true;
row->exact_window_width_line_p = true;
break;