aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2011-10-19 13:46:17 +0200
committerEli Zaretskii2011-10-19 13:46:17 +0200
commit12b32963196147a21ac0945396d24ab67e4a221a (patch)
tree53fd220297aa1c787b40dceb43d2de89ecd26d82 /src
parentba9d54beb679c2edef04667051cb1b775ab1f5bd (diff)
downloademacs-12b32963196147a21ac0945396d24ab67e4a221a.tar.gz
emacs-12b32963196147a21ac0945396d24ab67e4a221a.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/xdisp.c13
2 files changed, 14 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9abbe450d3d..c6a23a773de 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -2,6 +2,10 @@
2 2
3 * xdisp.c (start_display): If the character at POS is displayed 3 * xdisp.c (start_display): If the character at POS is displayed
4 via a display vector, reset IT->current.dpvec_index to zero. 4 via a display vector, reset IT->current.dpvec_index to zero.
5 (try_window_reusing_current_matrix): If a line ends in a display
6 vector or the next line starts in a display vector, continue
7 redrawing the window even though the character position of
8 start_row was reached.
5 (Bug#9771, part 2) 9 (Bug#9771, part 2)
6 10
72011-10-18 Chong Yidong <cyd@gnu.org> 112011-10-18 Chong Yidong <cyd@gnu.org>
diff --git a/src/xdisp.c b/src/xdisp.c
index 50ddd6b08b8..0757feed1d9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -16078,13 +16078,20 @@ try_window_reusing_current_matrix (struct window *w)
16078 16078
16079 start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix); 16079 start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix);
16080 } 16080 }
16081 /* If we have reached alignment, 16081 /* If we have reached alignment, we can copy the rest of the
16082 we can copy the rest of the rows. */ 16082 rows. */
16083 if (IT_CHARPOS (it) == CHARPOS (start)) 16083 if (IT_CHARPOS (it) == CHARPOS (start)
16084 /* Don't accept "alignment" inside a display vector,
16085 since start_row could have started in the middle of
16086 that same display vector (thus their character
16087 positions match), and we have no way of telling if
16088 that is the case. */
16089 && it.current.dpvec_index < 0)
16084 break; 16090 break;
16085 16091
16086 if (display_line (&it)) 16092 if (display_line (&it))
16087 last_text_row = it.glyph_row - 1; 16093 last_text_row = it.glyph_row - 1;
16094
16088 } 16095 }
16089 16096
16090 /* A value of current_y < last_visible_y means that we stopped 16097 /* A value of current_y < last_visible_y means that we stopped