Commit 78897758 authored by YAMAMOTO Mitsuharu's avatar YAMAMOTO Mitsuharu
Browse files

(update_text_area): Avoid needless redraw of rightmost

glyph whose face is extended to the text area end.
parent 7efc64d4
2006-02-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* dispnew.c (update_text_area): Avoid needless redraw of rightmost
glyph whose face is extended to the text area end.
2006-02-22 Stefan Monnier <monnier@iro.umontreal.ca>
 
* window.c (Fwindow_list): Check `window' before doing XWINDOW.
......
......@@ -4358,10 +4358,14 @@ update_text_area (w, vpos)
int overlapping_glyphs_p = current_row->contains_overlapping_glyphs_p;
int desired_stop_pos = desired_row->used[TEXT_AREA];
/* If the desired row extends its face to the text area end,
/* If the desired row extends its face to the text area end, and
unless the current row also does so at the same position,
make sure we write at least one glyph, so that the face
extension actually takes place. */
if (MATRIX_ROW_EXTENDS_FACE_P (desired_row))
if (MATRIX_ROW_EXTENDS_FACE_P (desired_row)
&& (desired_stop_pos < current_row->used[TEXT_AREA]
|| (desired_stop_pos == current_row->used[TEXT_AREA]
&& !MATRIX_ROW_EXTENDS_FACE_P (current_row))))
--desired_stop_pos;
stop = min (current_row->used[TEXT_AREA], desired_stop_pos);
......@@ -4480,7 +4484,10 @@ update_text_area (w, vpos)
has to be cleared, if and only if we did a write_glyphs
above. This is made sure by setting desired_stop_pos
appropriately above. */
xassert (i < desired_row->used[TEXT_AREA]);
xassert (i < desired_row->used[TEXT_AREA]
|| ((desired_row->used[TEXT_AREA]
== current_row->used[TEXT_AREA])
&& MATRIX_ROW_EXTENDS_FACE_P (current_row)));
}
else if (MATRIX_ROW_EXTENDS_FACE_P (current_row))
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment