(redisplay_window): Fix infinite loop in redisplay.

If centering point failed to make whole line visible and vscroll
is non-zero, disable vscroll and try centering point again.
This commit is contained in:
Kim F. Storm 2003-02-25 12:33:32 +00:00
parent b928437175
commit 932357b45c
2 changed files with 16 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2003-02-25 Kim F. Storm <storm@cua.dk>
* xdisp.c (redisplay_window): Fix infinite loop in redisplay.
If centering point failed to make whole line visible and vscroll
is non-zero, disable vscroll and try centering point again.
* lread.c (read1): Accept `single space' syntax like (? x).
2003-02-25 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* keyboard.c (cancel_hourglass_unwind): Surround with

View file

@ -10822,6 +10822,14 @@ redisplay_window (window, just_this_one_p)
if (!make_cursor_line_fully_visible (w))
{
/* If vscroll is enabled, disable it and try again. */
if (w->vscroll)
{
w->vscroll = 0;
clear_glyph_matrix (w->desired_matrix);
goto recenter;
}
/* If centering point failed to make the whole line visible,
put point at the top instead. That has to make the whole line
visible, if it can be done. */