Followup to 2011-10-19T09:48:35Z!eliz@gnu.org.
src/xdisp.c (try_window_reusing_current_matrix): If a line ends in a display vector or the next line starts in a display vector, continue redrawing the window even though the character position of start_row was reached. Fixes: debbugs:9771
This commit is contained in:
parent
ba9d54beb6
commit
12b3296319
2 changed files with 14 additions and 3 deletions
|
@ -2,6 +2,10 @@
|
|||
|
||||
* xdisp.c (start_display): If the character at POS is displayed
|
||||
via a display vector, reset IT->current.dpvec_index to zero.
|
||||
(try_window_reusing_current_matrix): If a line ends in a display
|
||||
vector or the next line starts in a display vector, continue
|
||||
redrawing the window even though the character position of
|
||||
start_row was reached.
|
||||
(Bug#9771, part 2)
|
||||
|
||||
2011-10-18 Chong Yidong <cyd@gnu.org>
|
||||
|
|
13
src/xdisp.c
13
src/xdisp.c
|
@ -16078,13 +16078,20 @@ try_window_reusing_current_matrix (struct window *w)
|
|||
|
||||
start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix);
|
||||
}
|
||||
/* If we have reached alignment,
|
||||
we can copy the rest of the rows. */
|
||||
if (IT_CHARPOS (it) == CHARPOS (start))
|
||||
/* If we have reached alignment, we can copy the rest of the
|
||||
rows. */
|
||||
if (IT_CHARPOS (it) == CHARPOS (start)
|
||||
/* Don't accept "alignment" inside a display vector,
|
||||
since start_row could have started in the middle of
|
||||
that same display vector (thus their character
|
||||
positions match), and we have no way of telling if
|
||||
that is the case. */
|
||||
&& it.current.dpvec_index < 0)
|
||||
break;
|
||||
|
||||
if (display_line (&it))
|
||||
last_text_row = it.glyph_row - 1;
|
||||
|
||||
}
|
||||
|
||||
/* A value of current_y < last_visible_y means that we stopped
|
||||
|
|
Loading…
Add table
Reference in a new issue