From: Gerd Moellmann Date: Fri, 15 Dec 2000 17:14:56 +0000 (+0000) Subject: (update_window): Detect pending input every nth line X-Git-Tag: emacs-pretest-21.0.95~473 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e87b88097267da7cdcf24e05abbce48fb356b71d;p=emacs.git (update_window): Detect pending input every nth line updated, i.e. do it depending on real work done, and not on the vpos of the line. --- diff --git a/src/ChangeLog b/src/ChangeLog index 989ff4b9400..0cd551b3512 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,12 @@ 2000-12-15 Gerd Moellmann + * dispnew.c (update_window): Detect pending input every nth line + updated, i.e. do it depending on real work done, and not on the + vpos of the line. + + * xterm.c (expose_window): Don't redraw the window that's + currently being updated. + * window.c (Fset_window_point): Remove test for cursor_in_non_selected_windows. diff --git a/src/dispnew.c b/src/dispnew.c index 7694233e36f..dcff59d5698 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -3789,7 +3789,7 @@ update_window (w, force_p) struct glyph_row *row, *end; struct glyph_row *mode_line_row; struct glyph_row *header_line_row = NULL; - int yb, changed_p = 0, mouse_face_overwritten_p = 0; + int yb, changed_p = 0, mouse_face_overwritten_p = 0, n_updated; rif->update_window_begin_hook (w); yb = window_text_bottom_y (w); @@ -3844,7 +3844,7 @@ update_window (w, force_p) } /* Update the rest of the lines. */ - for (; row < end && (force_p || !input_pending); ++row) + for (n_updated = 0; row < end && (force_p || !input_pending); ++row) if (row->enabled_p) { int vpos = MATRIX_ROW_VPOS (row, desired_matrix); @@ -3854,7 +3854,7 @@ update_window (w, force_p) detect_input_pending. If it's done too often, scrolling large windows with repeated scroll-up commands will too quickly pause redisplay. */ - if (!force_p && vpos % preempt_count == 0) + if (!force_p && ++n_updated % preempt_count == 0) detect_input_pending (); changed_p |= update_window_line (w, vpos,