aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2000-12-15 17:14:56 +0000
committerGerd Moellmann2000-12-15 17:14:56 +0000
commite87b88097267da7cdcf24e05abbce48fb356b71d (patch)
tree2474e34f5d34859b9447dcf2f10a871113b98551 /src
parentc79114177c3137b1a8b09499f7514b27be3e5840 (diff)
downloademacs-e87b88097267da7cdcf24e05abbce48fb356b71d.tar.gz
emacs-e87b88097267da7cdcf24e05abbce48fb356b71d.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/dispnew.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 989ff4b9400..0cd551b3512 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,12 @@
12000-12-15 Gerd Moellmann <gerd@gnu.org> 12000-12-15 Gerd Moellmann <gerd@gnu.org>
2 2
3 * dispnew.c (update_window): Detect pending input every nth line
4 updated, i.e. do it depending on real work done, and not on the
5 vpos of the line.
6
7 * xterm.c (expose_window): Don't redraw the window that's
8 currently being updated.
9
3 * window.c (Fset_window_point): Remove test for 10 * window.c (Fset_window_point): Remove test for
4 cursor_in_non_selected_windows. 11 cursor_in_non_selected_windows.
5 12
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)
3789 struct glyph_row *row, *end; 3789 struct glyph_row *row, *end;
3790 struct glyph_row *mode_line_row; 3790 struct glyph_row *mode_line_row;
3791 struct glyph_row *header_line_row = NULL; 3791 struct glyph_row *header_line_row = NULL;
3792 int yb, changed_p = 0, mouse_face_overwritten_p = 0; 3792 int yb, changed_p = 0, mouse_face_overwritten_p = 0, n_updated;
3793 3793
3794 rif->update_window_begin_hook (w); 3794 rif->update_window_begin_hook (w);
3795 yb = window_text_bottom_y (w); 3795 yb = window_text_bottom_y (w);
@@ -3844,7 +3844,7 @@ update_window (w, force_p)
3844 } 3844 }
3845 3845
3846 /* Update the rest of the lines. */ 3846 /* Update the rest of the lines. */
3847 for (; row < end && (force_p || !input_pending); ++row) 3847 for (n_updated = 0; row < end && (force_p || !input_pending); ++row)
3848 if (row->enabled_p) 3848 if (row->enabled_p)
3849 { 3849 {
3850 int vpos = MATRIX_ROW_VPOS (row, desired_matrix); 3850 int vpos = MATRIX_ROW_VPOS (row, desired_matrix);
@@ -3854,7 +3854,7 @@ update_window (w, force_p)
3854 detect_input_pending. If it's done too often, 3854 detect_input_pending. If it's done too often,
3855 scrolling large windows with repeated scroll-up 3855 scrolling large windows with repeated scroll-up
3856 commands will too quickly pause redisplay. */ 3856 commands will too quickly pause redisplay. */
3857 if (!force_p && vpos % preempt_count == 0) 3857 if (!force_p && ++n_updated % preempt_count == 0)
3858 detect_input_pending (); 3858 detect_input_pending ();
3859 3859
3860 changed_p |= update_window_line (w, vpos, 3860 changed_p |= update_window_line (w, vpos,