diff options
| author | Gerd Moellmann | 2000-09-16 13:39:36 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-09-16 13:39:36 +0000 |
| commit | b74123131b11f3707410a2725dd6eabae3e54109 (patch) | |
| tree | dbe856b032a71201b823a3e7e7b76c4a37b0974a /src | |
| parent | 7f8f1edc239ca7c60fb96eae31a2f7b1f8f24b69 (diff) | |
| download | emacs-b74123131b11f3707410a2725dd6eabae3e54109.tar.gz emacs-b74123131b11f3707410a2725dd6eabae3e54109.zip | |
(update_window): Make sure to make desired rows
current even if they are completely invisible at the top
of a window.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/dispnew.c | 18 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 95a1d8fffeb..652aede7332 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2000-09-16 Gerd Moellmann <gerd@gnu.org> | ||
| 2 | |||
| 3 | * dispnew.c (update_window): Make sure to make desired rows | ||
| 4 | current even if they are completely invisible at the top | ||
| 5 | of a window. | ||
| 6 | |||
| 1 | 2000-09-15 Gerd Moellmann <gerd@gnu.org> | 7 | 2000-09-15 Gerd Moellmann <gerd@gnu.org> |
| 2 | 8 | ||
| 3 | * xfns.c (lookup_image): Build mask before applying an algorithm. | 9 | * xfns.c (lookup_image): Build mask before applying an algorithm. |
diff --git a/src/dispnew.c b/src/dispnew.c index 45b1223e55c..61cf1754e2e 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -3839,15 +3839,23 @@ update_window (w, force_p) | |||
| 3839 | 3839 | ||
| 3840 | /* Update the rest of the lines. */ | 3840 | /* Update the rest of the lines. */ |
| 3841 | for (; row < end && (force_p || !input_pending); ++row) | 3841 | for (; row < end && (force_p || !input_pending); ++row) |
| 3842 | if (row->enabled_p | 3842 | if (row->enabled_p) |
| 3843 | /* A row can be completely invisible in case a desired | ||
| 3844 | matrix was built with a vscroll and then | ||
| 3845 | make_cursor_line_fully_visible shifts the matrix. */ | ||
| 3846 | && row->visible_height > 0) | ||
| 3847 | { | 3843 | { |
| 3848 | int vpos = MATRIX_ROW_VPOS (row, desired_matrix); | 3844 | int vpos = MATRIX_ROW_VPOS (row, desired_matrix); |
| 3849 | int i; | 3845 | int i; |
| 3850 | 3846 | ||
| 3847 | /* A row can be completely invisible in case a desired | ||
| 3848 | matrix was built with a vscroll and then | ||
| 3849 | make_cursor_line_fully_visible shifts the matrix. | ||
| 3850 | Make sure to make such rows current anyway, since | ||
| 3851 | we need the correct y-position, for example, in the | ||
| 3852 | current matrix. */ | ||
| 3853 | if (row->visible_height <= 0) | ||
| 3854 | { | ||
| 3855 | make_current (w->desired_matrix, w->current_matrix, vpos); | ||
| 3856 | continue; | ||
| 3857 | } | ||
| 3858 | |||
| 3851 | /* We'll Have to play a little bit with when to | 3859 | /* We'll Have to play a little bit with when to |
| 3852 | detect_input_pending. If it's done too often, | 3860 | detect_input_pending. If it's done too often, |
| 3853 | scrolling large windows with repeated scroll-up | 3861 | scrolling large windows with repeated scroll-up |