Changeset 4085 for trunk/src/xdisp.c
- Timestamp:
- 05/18/06 16:19:18 (3 years ago)
- Files:
-
- trunk/src/xdisp.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/xdisp.c
r4079 r4085 9509 9509 while (it->current_x < max_x) 9510 9510 { 9511 int x_before, x, n_glyphs_before, i, nglyphs; 9511 int x, n_glyphs_before, i, nglyphs; 9512 struct it it_before; 9512 9513 9513 9514 /* Get the next display element. */ … … 9521 9522 9522 9523 /* Produce glyphs. */ 9523 x_before = it->current_x; 9524 n_glyphs_before = it->glyph_row->used[TEXT_AREA]; 9524 n_glyphs_before = row->used[TEXT_AREA]; 9525 it_before = *it; 9526 9525 9527 PRODUCE_GLYPHS (it); 9526 9528 9527 nglyphs = it->glyph_row->used[TEXT_AREA] - n_glyphs_before;9529 nglyphs = row->used[TEXT_AREA] - n_glyphs_before; 9528 9530 i = 0; 9529 x = x_before;9531 x = it_before.current_x; 9530 9532 while (i < nglyphs) 9531 9533 { … … 9534 9536 if (x + glyph->pixel_width > max_x) 9535 9537 { 9536 /* Glyph doesn't fit on line. */9537 it->glyph_row->used[TEXT_AREA] = n_glyphs_before + i;9538 it->current_x = x;9538 /* Glyph doesn't fit on line. Backtrack. */ 9539 row->used[TEXT_AREA] = n_glyphs_before; 9540 *it = it_before; 9539 9541 goto out; 9540 9542 } … … 9567 9569 if ((height -= it->max_ascent + it->max_descent) > 0) 9568 9570 { 9571 /* Don't add more than one line height. */ 9572 height %= FRAME_LINE_HEIGHT (it->f); 9569 9573 it->max_ascent += height / 2; 9570 9574 it->max_descent += (height + 1) / 2;
