aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorGerd Moellmann <[email protected]>2000-09-16 13:39:36 +0000
committerGerd Moellmann <[email protected]>2000-09-16 13:39:36 +0000
commitb74123131b11f3707410a2725dd6eabae3e54109 (patch)
treedbe856b032a71201b823a3e7e7b76c4a37b0974a /src/dispnew.c
parent7f8f1edc239ca7c60fb96eae31a2f7b1f8f24b69 (diff)
(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/dispnew.c')
-rw-r--r--src/dispnew.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index 45b1223e55..61cf1754e2 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -3839,15 +3839,23 @@ update_window (w, force_p)
/* Update the rest of the lines. */
for (; row < end && (force_p || !input_pending); ++row)
- if (row->enabled_p
- /* A row can be completely invisible in case a desired
- matrix was built with a vscroll and then
- make_cursor_line_fully_visible shifts the matrix. */
- && row->visible_height > 0)
+ if (row->enabled_p)
{
int vpos = MATRIX_ROW_VPOS (row, desired_matrix);
int i;
+ /* A row can be completely invisible in case a desired
+ matrix was built with a vscroll and then
+ make_cursor_line_fully_visible shifts the matrix.
+ Make sure to make such rows current anyway, since
+ we need the correct y-position, for example, in the
+ current matrix. */
+ if (row->visible_height <= 0)
+ {
+ make_current (w->desired_matrix, w->current_matrix, vpos);
+ continue;
+ }
+
/* We'll Have to play a little bit with when to
detect_input_pending. If it's done too often,
scrolling large windows with repeated scroll-up