Fix bug #6671 with recentering and other scrolling problems.
src/xdisp.c (SCROLL_LIMIT): New macro. (try_scrolling): Use it when setting scroll_limit. Limit scrolling to 100 screen lines. (redisplay_window): Even when falling back on "recentering", position point in the window according to scroll-conservatively, scroll-margin, and scroll-*-aggressively variables. (try_scrolling): When point is above the window, allow searching as far as scroll_max, or one screenful, to compute vertical distance from PT to the scroll margin position. This prevents try_scrolling from unnecessarily failing when scroll-conservatively is set to a value slightly larger than the window height. Clean up the case of PT below the margin at bottom of window: scroll_max can no longer be INT_MAX. When aggressive scrolling is in use, don't let point enter the opposite scroll margin as result of the scroll. (syms_of_xdisp) <scroll-conservatively>: Document the threshold of 100 lines for never-recentering scrolling. doc/emacs/display.texi (Auto Scrolling): Document the limit of 100 lines for never-recentering scrolling with `scroll-conservatively'.
Showing with 163 additions and 32 deletions