comparison src/dispnew.c @ 90317:34c8b755296d

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-23 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 113-118) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 38-39) - Update from CVS
author Miles Bader <miles@gnu.org>
date Fri, 24 Feb 2006 08:08:56 +0000
parents c5406394f567 9d86d35acf33
children e6bf73e43cf4
comparison
equal deleted inserted replaced
90316:458ed0c8c4c3 90317:34c8b755296d
4342 struct glyph *current_glyph = current_row->glyphs[TEXT_AREA]; 4342 struct glyph *current_glyph = current_row->glyphs[TEXT_AREA];
4343 struct glyph *desired_glyph = desired_row->glyphs[TEXT_AREA]; 4343 struct glyph *desired_glyph = desired_row->glyphs[TEXT_AREA];
4344 int overlapping_glyphs_p = current_row->contains_overlapping_glyphs_p; 4344 int overlapping_glyphs_p = current_row->contains_overlapping_glyphs_p;
4345 int desired_stop_pos = desired_row->used[TEXT_AREA]; 4345 int desired_stop_pos = desired_row->used[TEXT_AREA];
4346 4346
4347 /* If the desired row extends its face to the text area end, 4347 /* If the desired row extends its face to the text area end, and
4348 unless the current row also does so at the same position,
4348 make sure we write at least one glyph, so that the face 4349 make sure we write at least one glyph, so that the face
4349 extension actually takes place. */ 4350 extension actually takes place. */
4350 if (MATRIX_ROW_EXTENDS_FACE_P (desired_row)) 4351 if (MATRIX_ROW_EXTENDS_FACE_P (desired_row)
4352 && (desired_stop_pos < current_row->used[TEXT_AREA]
4353 || (desired_stop_pos == current_row->used[TEXT_AREA]
4354 && !MATRIX_ROW_EXTENDS_FACE_P (current_row))))
4351 --desired_stop_pos; 4355 --desired_stop_pos;
4352 4356
4353 stop = min (current_row->used[TEXT_AREA], desired_stop_pos); 4357 stop = min (current_row->used[TEXT_AREA], desired_stop_pos);
4354 i = 0; 4358 i = 0;
4355 x = desired_row->x; 4359 x = desired_row->x;
4464 { 4468 {
4465 /* If new row extends to the end of the text area, nothing 4469 /* If new row extends to the end of the text area, nothing
4466 has to be cleared, if and only if we did a write_glyphs 4470 has to be cleared, if and only if we did a write_glyphs
4467 above. This is made sure by setting desired_stop_pos 4471 above. This is made sure by setting desired_stop_pos
4468 appropriately above. */ 4472 appropriately above. */
4469 xassert (i < desired_row->used[TEXT_AREA]); 4473 xassert (i < desired_row->used[TEXT_AREA]
4474 || ((desired_row->used[TEXT_AREA]
4475 == current_row->used[TEXT_AREA])
4476 && MATRIX_ROW_EXTENDS_FACE_P (current_row)));
4470 } 4477 }
4471 else if (MATRIX_ROW_EXTENDS_FACE_P (current_row)) 4478 else if (MATRIX_ROW_EXTENDS_FACE_P (current_row))
4472 { 4479 {
4473 /* If old row extends to the end of the text area, clear. */ 4480 /* If old row extends to the end of the text area, clear. */
4474 if (i >= desired_row->used[TEXT_AREA]) 4481 if (i >= desired_row->used[TEXT_AREA])