Mercurial > emacs
changeset 29461:159e43bc7e3c
(display_line): Revert change of 2000-06-06. Treat
padding glyph not fitting on line as whole character not
fitting on line.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Tue, 06 Jun 2000 12:25:50 +0000 |
parents | 7d50aac00502 |
children | 3306af2e4f3d |
files | src/xdisp.c |
diffstat | 1 files changed, 25 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Tue Jun 06 10:39:20 2000 +0000 +++ b/src/xdisp.c Tue Jun 06 12:25:50 2000 +0000 @@ -11319,8 +11319,6 @@ for (i = 0; i < nglyphs; ++i, x = new_x) { glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; - if (CHAR_GLYPH_PADDING_P (*glyph)) - continue; new_x = x + glyph->pixel_width; if (/* Lines are continued. */ @@ -11348,6 +11346,31 @@ if (i == nglyphs - 1) set_iterator_to_next (it); } + else if (CHAR_GLYPH_PADDING_P (*glyph) + && !FRAME_WINDOW_P (it->f)) + { + /* A padding glyph that doesn't fit on this line. + This means the whole character doesn't fit + on the line. */ + row->used[TEXT_AREA] = n_glyphs_before; + + /* Fill the rest of the row with continuation + glyphs like in 20.x. */ + while (row->glyphs[TEXT_AREA] + row->used[TEXT_AREA] + < row->glyphs[1 + TEXT_AREA]) + produce_special_glyphs (it, IT_CONTINUATION); + + row->continued_p = 1; + it->current_x = x_before; + it->continuation_lines_width += x_before; + + /* Restore the height to what it was before the + element not fitting on the line. */ + it->max_ascent = ascent; + it->max_descent = descent; + it->max_phys_ascent = phys_ascent; + it->max_phys_descent = phys_descent; + } else { /* Display element draws past the right edge of