diff options
| author | Gerd Moellmann | 2000-06-06 12:25:50 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-06-06 12:25:50 +0000 |
| commit | 3b3c4bf057e55157136cac42746db6e75aee44ab (patch) | |
| tree | b3c6ed0d4c2b20000c1d1e028d46bf01a8945034 /src | |
| parent | 5f1aea9aa7e7ec2a9c10410508db82c11293daea (diff) | |
| download | emacs-3b3c4bf057e55157136cac42746db6e75aee44ab.tar.gz emacs-3b3c4bf057e55157136cac42746db6e75aee44ab.zip | |
(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')
| -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 3920510a5df..3affc6e132b 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -11319,8 +11319,6 @@ display_line (it) | |||
| 11319 | for (i = 0; i < nglyphs; ++i, x = new_x) | 11319 | for (i = 0; i < nglyphs; ++i, x = new_x) |
| 11320 | { | 11320 | { |
| 11321 | glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; | 11321 | glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; |
| 11322 | if (CHAR_GLYPH_PADDING_P (*glyph)) | ||
| 11323 | continue; | ||
| 11324 | new_x = x + glyph->pixel_width; | 11322 | new_x = x + glyph->pixel_width; |
| 11325 | 11323 | ||
| 11326 | if (/* Lines are continued. */ | 11324 | if (/* Lines are continued. */ |
| @@ -11348,6 +11346,31 @@ display_line (it) | |||
| 11348 | if (i == nglyphs - 1) | 11346 | if (i == nglyphs - 1) |
| 11349 | set_iterator_to_next (it); | 11347 | set_iterator_to_next (it); |
| 11350 | } | 11348 | } |
| 11349 | else if (CHAR_GLYPH_PADDING_P (*glyph) | ||
| 11350 | && !FRAME_WINDOW_P (it->f)) | ||
| 11351 | { | ||
| 11352 | /* A padding glyph that doesn't fit on this line. | ||
| 11353 | This means the whole character doesn't fit | ||
| 11354 | on the line. */ | ||
| 11355 | row->used[TEXT_AREA] = n_glyphs_before; | ||
| 11356 | |||
| 11357 | /* Fill the rest of the row with continuation | ||
| 11358 | glyphs like in 20.x. */ | ||
| 11359 | while (row->glyphs[TEXT_AREA] + row->used[TEXT_AREA] | ||
| 11360 | < row->glyphs[1 + TEXT_AREA]) | ||
| 11361 | produce_special_glyphs (it, IT_CONTINUATION); | ||
| 11362 | |||
| 11363 | row->continued_p = 1; | ||
| 11364 | it->current_x = x_before; | ||
| 11365 | it->continuation_lines_width += x_before; | ||
| 11366 | |||
| 11367 | /* Restore the height to what it was before the | ||
| 11368 | element not fitting on the line. */ | ||
| 11369 | it->max_ascent = ascent; | ||
| 11370 | it->max_descent = descent; | ||
| 11371 | it->max_phys_ascent = phys_ascent; | ||
| 11372 | it->max_phys_descent = phys_descent; | ||
| 11373 | } | ||
| 11351 | else | 11374 | else |
| 11352 | { | 11375 | { |
| 11353 | /* Display element draws past the right edge of | 11376 | /* Display element draws past the right edge of |