summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-12-29 23:41:20 +0200
committerEli Zaretskii <eliz@gnu.org>2017-12-29 23:41:20 +0200
commit0c78822c701533a94b010a043bcb049dd594bb93 (patch)
treec789e5e604a42b12537c60e42017ef6a8cee8795
parentacd289c5a4d9679ec8051b330e7a8685d4fde20f (diff)
downloademacs-0c78822c701533a94b010a043bcb049dd594bb93.tar.gz
emacs-0c78822c701533a94b010a043bcb049dd594bb93.tar.bz2
emacs-0c78822c701533a94b010a043bcb049dd594bb93.zip
Fix subtle problem with scroll-down when scroll-margin is nonzero
* src/window.c (window_scroll_pixel_based): Account for scroll-margin when scrolling down, i.e. moving window-start towards the beginning of the buffer. Reported by zhang cc <ccsmile2008@outlook.com> in http://lists.gnu.org/archive/html/emacs-devel/2017-12/msg00894.html.
-rw-r--r--src/window.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/window.c b/src/window.c
index 504dcd38357..20a6020a3b7 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5397,12 +5397,13 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, bool noerror)
if (it.what == IT_EOB)
partial_p =
it.current_y + it.ascent + it.descent
- > it.last_visible_y - WINDOW_HEADER_LINE_HEIGHT (w);
+ > it.last_visible_y - this_scroll_margin - WINDOW_HEADER_LINE_HEIGHT (w);
else
{
move_it_by_lines (&it, 1);
partial_p =
- it.current_y > it.last_visible_y - WINDOW_HEADER_LINE_HEIGHT (w);
+ it.current_y
+ > it.last_visible_y - this_scroll_margin - WINDOW_HEADER_LINE_HEIGHT (w);
}
if (charpos == PT && !partial_p