Avoid infloop when scrolling conservatively (Bug#7537).

* src/xdisp.c (try_scrolling): Avoid infloop if the first line is obscured
due to a vscroll (Bug#7537).
This commit is contained in:
Chong Yidong 2010-12-04 19:32:32 -05:00
parent 6ed96c33f0
commit 77f1ed6cb6
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2010-12-05 Chong Yidong <cyd@stupidchicken.com>
* xdisp.c (try_scrolling): Avoid infloop if the first line is
obscured due to a vscroll (Bug#7537).
2010-12-02 Jan Djärv <jhd@zeplinf.localdomain>
* nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.

View file

@ -12759,7 +12759,11 @@ try_scrolling (window, just_this_one_p, scroll_conservatively,
/* If cursor ends up on a partially visible line,
treat that as being off the bottom of the screen. */
if (! cursor_row_fully_visible_p (w, extra_scroll_margin_lines <= 1, 0))
if (! cursor_row_fully_visible_p (w, extra_scroll_margin_lines <= 1, 0)
/* It's possible that the cursor is on the first line of the
buffer, which is partially obscured due to a vscroll
(Bug#7537). In that case, avoid looping forever . */
&& extra_scroll_margin_lines < w->desired_matrix->nrows - 1)
{
clear_glyph_matrix (w->desired_matrix);
++extra_scroll_margin_lines;