[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Excessive redraw of overlapping/overlapped rows?
From: |
YAMAMOTO Mitsuharu |
Subject: |
Excessive redraw of overlapping/overlapped rows? |
Date: |
Mon, 26 Sep 2005 17:33:00 +0900 |
User-agent: |
Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) |
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
address@hidden
- Excessive redraw of overlapping/overlapped rows?,
YAMAMOTO Mitsuharu <=