all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Excessive redraw of overlapping/overlapped rows?
@ 2005-09-26  8:33 YAMAMOTO Mitsuharu
  2005-09-26 14:26 ` Kim F. Storm
  0 siblings, 1 reply; 6+ messages in thread
From: YAMAMOTO Mitsuharu @ 2005-09-26  8:33 UTC (permalink / raw)


In window_update (dispnew.c), overlapping/overlapped rows are redrawn
if `changed_p' is non-zero.

	  if (changed_p && rif->fix_overlapping_area)
	    {
	      redraw_overlapped_rows (w, yb);
	      redraw_overlapping_rows (w, yb);
	    }

but this variable is set when either the mode line or the header line
is updated.

      if (mode_line_row->mode_line_p && mode_line_row->enabled_p)
	{
	  mode_line_row->y = yb;
	  update_window_line (w, MATRIX_ROW_VPOS (mode_line_row,
						  desired_matrix),
			      &mouse_face_overwritten_p);
	  changed_p = 1;
	}

So when a user moves the cursor vertically and the line number
displayed in the mode line is changed, the whole
overlapping/overlapped rows get redrawn.  It significantly degrades
performance of cursor movement for such an environment that text
drawing is not so fast.

Is it OK to not set `changed_p' for the case of mode/header line
updates?

				     YAMAMOTO Mitsuharu
				mituharu@math.s.chiba-u.ac.jp

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-02-23 10:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-26  8:33 Excessive redraw of overlapping/overlapped rows? YAMAMOTO Mitsuharu
2005-09-26 14:26 ` Kim F. Storm
2005-09-26 19:19   ` David Kastrup
2005-09-28  8:25     ` YAMAMOTO Mitsuharu
2006-02-23 10:26     ` YAMAMOTO Mitsuharu
2005-09-27  3:35   ` YAMAMOTO Mitsuharu

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.