emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 1439d89: In follow mode, prevent the cursor resting


From: Alan Mackenzie
Subject: [Emacs-diffs] master 1439d89: In follow mode, prevent the cursor resting on a partially displayed line
Date: Mon, 15 Oct 2018 15:57:49 -0400 (EDT)

branch: master
commit 1439d89f4dd3c156ddd4f6877075ffe76456c21a
Author: Alan Mackenzie <address@hidden>
Commit: Alan Mackenzie <address@hidden>

    In follow mode, prevent the cursor resting on a partially displayed line
    
    This fixes bug #32848
    
    * lisp/follow.el (follow-adjust-window): If point ends up in a partially
    displayed line in a left hand or middle window, move it one line forward, to
    prevent unwanted scrolling should make-cursor-line-fully-visible be non-nil.
---
 lisp/follow.el | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lisp/follow.el b/lisp/follow.el
index e2d3a11..b44df42 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -1405,7 +1405,13 @@ non-first windows in Follow mode."
          (unless (eq win (selected-window))
            (let ((p (window-point win)))
              (set-window-start win (window-start win) nil)
-             (set-window-point win p))))
+              (if (nth 2 (pos-visible-in-window-p p win t))
+                  ;; p is in a partially visible line.  We can't leave
+                  ;; window-point there, because C-x o back into WIN
+                  ;; would then fail.
+                  (with-selected-window win
+                    (forward-line)) ; redisplay will recenter it in WIN.
+               (set-window-point win p)))))
 
        (unless visible
          ;; If point may not be visible in the selected window,



reply via email to

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