]> git.eshelyaron.com Git - emacs.git/commitdiff
(sync_frame_with_window_matrix_rows): Don't give frame
authorGerd Moellmann <gerd@gnu.org>
Fri, 12 Apr 2002 11:43:36 +0000 (11:43 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 12 Apr 2002 11:43:36 +0000 (11:43 +0000)
rows marginal areas.
(Fdump_frame_glyph_matrix) [GLYPH_DEBUG]: New function.
(syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.

src/ChangeLog
src/xdisp.c

index 235ebd2ee6aa45fa6f3494c88b6808edf8d8bee4..d33e08bd6af16ea596bff1764cb83a3444d914d7 100644 (file)
@@ -1,5 +1,10 @@
 2002-04-12  Gerd Moellmann  <gerd@gnu.org>
 
+       * xdisp.c (sync_frame_with_window_matrix_rows): Don't give frame
+       rows marginal areas.
+       (Fdump_frame_glyph_matrix) [GLYPH_DEBUG]: New function.
+       (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
+
        * dispnew.c (marginal_area_string): Check that glyph row is enabled.
 
 2002-04-12  Dave Love  <fx@gnu.org>
index 9dd35bae58f80024dcda3768d04b3f9365765911..107218b928ba23e727b90202836d8741f8467d81 100644 (file)
@@ -11343,16 +11343,20 @@ sync_frame_with_window_matrix_rows (w)
 
   /* If W is a full-width window, glyph pointers in W's current matrix
      have, by definition, to be the same as glyph pointers in the
-     corresponding frame matrix.  */
+     corresponding frame matrix.  Note that frame matrices have no
+     marginal areas (see build_frame_matrix).  */
   window_row = w->current_matrix->rows;
   window_row_end = window_row + w->current_matrix->nrows;
   frame_row = f->current_matrix->rows + XFASTINT (w->top);
   while (window_row < window_row_end)
     {
-      int area;
-      
-      for (area = LEFT_MARGIN_AREA; area <= LAST_AREA; ++area)
-       frame_row->glyphs[area] = window_row->glyphs[area];
+      struct glyph *start = window_row->glyphs[LEFT_MARGIN_AREA];
+      struct glyph *end = window_row->glyphs[LAST_AREA];
+
+      frame_row->glyphs[LEFT_MARGIN_AREA] = start;
+      frame_row->glyphs[TEXT_AREA] = start;
+      frame_row->glyphs[RIGHT_MARGIN_AREA] = end;
+      frame_row->glyphs[LAST_AREA] = end;
 
       /* Disable frame rows whose corresponding window rows have
         been disabled in try_window_id.  */
@@ -12367,6 +12371,16 @@ glyphs in short form, otherwise show glyphs in long form.  */)
 }
 
 
+DEFUN ("dump-frame-glyph-matrix", Fdump_frame_glyph_matrix,
+       Sdump_frame_glyph_matrix, 0, 0, "", doc: /* */)
+     ()
+{
+  struct frame *f = XFRAME (selected_frame);
+  dump_glyph_matrix (f->current_matrix, 1);
+  return Qnil;
+}
+
+
 DEFUN ("dump-glyph-row", Fdump_glyph_row, Sdump_glyph_row, 1, 2, "",
        doc: /* Dump glyph row ROW to stderr.
 GLYPH 0 means don't dump glyphs.
@@ -14859,6 +14873,7 @@ syms_of_xdisp ()
   staticpro (&message_dolog_marker3);
 
 #if GLYPH_DEBUG
+  defsubr (&Sdump_frame_glyph_matrix);
   defsubr (&Sdump_glyph_matrix);
   defsubr (&Sdump_glyph_row);
   defsubr (&Sdump_tool_bar_row);