]> git.eshelyaron.com Git - emacs.git/commitdiff
(display_line): Increment nrows_scale_factor and set
authorKim F. Storm <storm@cua.dk>
Wed, 21 Jul 2004 21:09:43 +0000 (21:09 +0000)
committerKim F. Storm <storm@cua.dk>
Wed, 21 Jul 2004 21:09:43 +0000 (21:09 +0000)
fonts_changed_p if past last allocated row.
(append_glyph, append_composite_glyph, produce_image_glyph)
(append_stretch_glyph): Increment ncols_scale_factor and set
fonts_changed_p if current area is full.

src/xdisp.c

index d273de7484711c4d6cc866cca66ed9a6ea53cef6..4083ce7a438d346faa55f26325f48c54abfc5ef2 100644 (file)
@@ -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;
+    }
 }