summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xdisp.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index d273de74847..4083ce7a438 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14462,9 +14462,13 @@ display_line (it)
/* We always start displaying at hpos zero even if hscrolled. */
xassert (it->hpos == 0 && it->current_x == 0);
- /* We must not display in a row that's not a text row. */
- xassert (MATRIX_ROW_VPOS (row, it->w->desired_matrix)
- < it->w->desired_matrix->nrows);
+ if (MATRIX_ROW_VPOS (row, it->w->desired_matrix)
+ >= it->w->desired_matrix->nrows)
+ {
+ it->w->nrows_scale_factor++;
+ fonts_changed_p = 1;
+ return 0;
+ }
/* Is IT->w showing the region? */
it->w->region_showing = it->region_beg_charpos > 0 ? Qt : Qnil;
@@ -18135,6 +18139,11 @@ append_glyph (it)
glyph->font_type = FONT_TYPE_UNKNOWN;
++it->glyph_row->used[area];
}
+ else if (!fonts_changed_p)
+ {
+ it->w->ncols_scale_factor++;
+ fonts_changed_p = 1;
+ }
}
/* Store one glyph for the composition IT->cmp_id in IT->glyph_row.
@@ -18172,6 +18181,11 @@ append_composite_glyph (it)
glyph->font_type = FONT_TYPE_UNKNOWN;
++it->glyph_row->used[area];
}
+ else if (!fonts_changed_p)
+ {
+ it->w->ncols_scale_factor++;
+ fonts_changed_p = 1;
+ }
}
@@ -18341,6 +18355,11 @@ produce_image_glyph (it)
glyph->font_type = FONT_TYPE_UNKNOWN;
++it->glyph_row->used[area];
}
+ else if (!fonts_changed_p)
+ {
+ it->w->ncols_scale_factor++;
+ fonts_changed_p = 1;
+ }
}
}
@@ -18384,6 +18403,11 @@ append_stretch_glyph (it, object, width, height, ascent)
glyph->font_type = FONT_TYPE_UNKNOWN;
++it->glyph_row->used[area];
}
+ else if (!fonts_changed_p)
+ {
+ it->w->ncols_scale_factor++;
+ fonts_changed_p = 1;
+ }
}