diff options
| author | Gerd Moellmann | 2000-12-15 17:14:56 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-12-15 17:14:56 +0000 |
| commit | e87b88097267da7cdcf24e05abbce48fb356b71d (patch) | |
| tree | 2474e34f5d34859b9447dcf2f10a871113b98551 /src | |
| parent | c79114177c3137b1a8b09499f7514b27be3e5840 (diff) | |
| download | emacs-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/ChangeLog | 7 | ||||
| -rw-r--r-- | src/dispnew.c | 6 |
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 @@ | |||
| 1 | 2000-12-15 Gerd Moellmann <gerd@gnu.org> | 1 | 2000-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, |