aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2017-02-25 13:40:23 +0200
committerEli Zaretskii2017-02-25 13:40:23 +0200
commita3c9a554f1f3be560003fa7d0c661506d5209b4e (patch)
tree2af2f9352345fa4c7c5149dad7bd000dd6667a3e
parentecbd5f9ac6eb2d31241657bbb3e3f9b860391054 (diff)
downloademacs-a3c9a554f1f3be560003fa7d0c661506d5209b4e.tar.gz
emacs-a3c9a554f1f3be560003fa7d0c661506d5209b4e.zip
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)
-rw-r--r--src/xdisp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index b0644882bdc..91eef0ec475 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -20733,6 +20733,12 @@ display_line (struct it *it)
20733 } 20733 }
20734 20734
20735 it->continuation_lines_width = 0; 20735 it->continuation_lines_width = 0;
20736 /* Reset those iterator values set from display property
20737 values. This is for the case when the display property
20738 ends at ZV, and is not a replacing property, so pop_it is
20739 not called. */
20740 it->font_height = Qnil;
20741 it->voffset = 0;
20736 row->ends_at_zv_p = true; 20742 row->ends_at_zv_p = true;
20737 /* A row that displays right-to-left text must always have 20743 /* A row that displays right-to-left text must always have
20738 its last face extended all the way to the end of line, 20744 its last face extended all the way to the end of line,
@@ -20919,6 +20925,8 @@ display_line (struct it *it)
20919 { 20925 {
20920 row->exact_window_width_line_p = true; 20926 row->exact_window_width_line_p = true;
20921 it->continuation_lines_width = 0; 20927 it->continuation_lines_width = 0;
20928 it->font_height = Qnil;
20929 it->voffset = 0;
20922 row->continued_p = false; 20930 row->continued_p = false;
20923 row->ends_at_zv_p = true; 20931 row->ends_at_zv_p = true;
20924 } 20932 }
@@ -21236,6 +21244,8 @@ display_line (struct it *it)
21236 if (!get_next_display_element (it)) 21244 if (!get_next_display_element (it))
21237 { 21245 {
21238 it->continuation_lines_width = 0; 21246 it->continuation_lines_width = 0;
21247 it->font_height = Qnil;
21248 it->voffset = 0;
21239 row->ends_at_zv_p = true; 21249 row->ends_at_zv_p = true;
21240 row->exact_window_width_line_p = true; 21250 row->exact_window_width_line_p = true;
21241 break; 21251 break;