]> 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:48:32 +0000 (11:48 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 12 Apr 2002 11:48:32 +0000 (11:48 +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 10b9cc81367ba59838eaf3aa2ab64d74b2e562d7..d59af0d5fb43224d650d78d9576d46ac4c2c2217 100644 (file)
@@ -1,3 +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.
+
 2002-04-01  Stefan Monnier  <monnier@cs.yale.edu>
 
        * xterm.c (x_set_toolkit_scroll_bar_thumb) <USE_MOTIF>:
index eb4070078a523c5de4c6d53ed8ddd37bc2a76a52..818331f5a62847fc1bc2746419404481395c7ced 100644 (file)
@@ -1,5 +1,5 @@
 /* Display generation from window structure and buffer text.
-   Copyright (C) 1985, 86, 87, 88, 93, 94, 95, 97, 98, 99, 2000, 2001
+   Copyright (C) 1985, 86, 87, 88, 93, 94, 95, 97, 98, 99, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -11201,16 +11201,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.  */
@@ -12241,6 +12245,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, "",
   "Dump glyph row ROW to stderr.\n\
 GLYPH 0 means don't dump glyphs.\n\
@@ -14675,6 +14689,7 @@ syms_of_xdisp ()
   staticpro (&Qinhibit_redisplay);
 
 #if GLYPH_DEBUG
+  defsubr (&Sdump_frame_glyph_matrix);
   defsubr (&Sdump_glyph_matrix);
   defsubr (&Sdump_glyph_row);
   defsubr (&Sdump_tool_bar_row);