(update_window): Make sure to make desired rows

current even if they are completely invisible at the top
of a window.
This commit is contained in:
Gerd Moellmann 2000-09-16 13:39:36 +00:00
parent 7f8f1edc23
commit b74123131b
2 changed files with 19 additions and 5 deletions

View file

@ -1,3 +1,9 @@
2000-09-16 Gerd Moellmann <gerd@gnu.org>
* dispnew.c (update_window): Make sure to make desired rows
current even if they are completely invisible at the top
of a window.
2000-09-15 Gerd Moellmann <gerd@gnu.org>
* xfns.c (lookup_image): Build mask before applying an algorithm.

View file

@ -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