diff options
| author | Eli Zaretskii | 2017-02-25 13:40:23 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2017-02-25 13:40:23 +0200 |
| commit | a3c9a554f1f3be560003fa7d0c661506d5209b4e (patch) | |
| tree | 2af2f9352345fa4c7c5149dad7bd000dd6667a3e /src | |
| parent | ecbd5f9ac6eb2d31241657bbb3e3f9b860391054 (diff) | |
| download | emacs-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)
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 10 |
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; |