diff options
author | Gerd Moellmann <[email protected]> | 2000-06-06 12:25:50 +0000 |
---|---|---|
committer | Gerd Moellmann <[email protected]> | 2000-06-06 12:25:50 +0000 |
commit | 3b3c4bf057e55157136cac42746db6e75aee44ab (patch) | |
tree | b3c6ed0d4c2b20000c1d1e028d46bf01a8945034 /src/xdisp.c | |
parent | 5f1aea9aa7e7ec2a9c10410508db82c11293daea (diff) |
(display_line): Revert change of 2000-06-06. Treat
padding glyph not fitting on line as whole character not
fitting on line.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r-- | src/xdisp.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 3920510a5d..3affc6e132 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11319,8 +11319,6 @@ display_line (it) 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 @@ display_line (it) 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 |