Mercurial > emacs
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]) |