From 3b3c4bf057e55157136cac42746db6e75aee44ab Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Tue, 6 Jun 2000 12:25:50 +0000 Subject: [PATCH] (display_line): Revert change of 2000-06-06. Treat padding glyph not fitting on line as whole character not fitting on line. --- src/xdisp.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index 3920510a5df..3affc6e132b 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 -- 2.39.2