emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master a07ec21: Re-enable scroll-margin when cursor-motion optimization


From: Eli Zaretskii
Subject: master a07ec21: Re-enable scroll-margin when cursor-motion optimization is disabled
Date: Sun, 2 Aug 2020 11:32:29 -0400 (EDT)

branch: master
commit a07ec21bf24b8d1dc41808f997dd0fb78cad3870
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Re-enable scroll-margin when cursor-motion optimization is disabled
    
    * src/xdisp.c (try_window): Fix logic of disabling margins when
    cursor is close to BOB or EOB.  Account for header-line, if any,
    when computing the scroll margin in pixels.  (Bug#42653)
---
 src/xdisp.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index fc17014..a8cd4dc 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -19223,18 +19223,20 @@ try_window (Lisp_Object window, struct text_pos pos, 
int flags)
       && !MINI_WINDOW_P (w))
     {
       int this_scroll_margin = window_scroll_margin (w, MARGIN_IN_PIXELS);
+      if (window_wants_header_line (w))
+       this_scroll_margin += CURRENT_HEADER_LINE_HEIGHT (w);
       start_display (&it, w, pos);
 
       if ((w->cursor.y >= 0    /* not vscrolled */
           && w->cursor.y < this_scroll_margin
-          && CHARPOS (pos) > BEGV
-           && it_charpos < ZV)
+          && CHARPOS (pos) > BEGV)
          /* rms: considering make_cursor_line_fully_visible_p here
             seems to give wrong results.  We don't want to recenter
             when the last line is partly visible, we want to allow
             that case to be handled in the usual way.  */
-          || w->cursor.y > (it.last_visible_y - partial_line_height (&it)
-                            - this_scroll_margin - 1))
+         || (it_charpos < ZV   /* if EOB is visible, disable bottom margin */
+             && w->cursor.y > (it.last_visible_y - partial_line_height (&it)
+                               - this_scroll_margin - 1)))
        {
          w->cursor.vpos = -1;
          clear_glyph_matrix (w->desired_matrix);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]