# HG changeset patch # User Gerd Moellmann # Date 960294350 0 # Node ID 159e43bc7e3cc4cba2e6405b012170de0e3ced4e # Parent 7d50aac00502edf380be5f85dabf060551734864 (display_line): Revert change of 2000-06-06. Treat padding glyph not fitting on line as whole character not fitting on line. diff -r 7d50aac00502 -r 159e43bc7e3c src/xdisp.c --- 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