From: Gerd Moellmann Date: Fri, 12 Apr 2002 11:48:32 +0000 (+0000) Subject: (sync_frame_with_window_matrix_rows): Don't give frame X-Git-Tag: emacs-pretest-21.2.91~315 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=693f67a0499a5298549f0b78ca1b0e6ace76042b;p=emacs.git (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. --- diff --git a/src/ChangeLog b/src/ChangeLog index 10b9cc81367..d59af0d5fb4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2002-04-12 Gerd Moellmann + + * 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 * xterm.c (x_set_toolkit_scroll_bar_thumb) : diff --git a/src/xdisp.c b/src/xdisp.c index eb4070078a5..818331f5a62 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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);