]> git.eshelyaron.com Git - emacs.git/commitdiff
In follow mode, prevent the cursor resting on a partially displayed line
authorAlan Mackenzie <acm@muc.de>
Mon, 15 Oct 2018 19:48:25 +0000 (19:48 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 15 Oct 2018 19:48:25 +0000 (19:48 +0000)
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

index e2d3a11b6543f42c77a43d2cd354f4bc4bd952f7..b44df423d608febe120e95759ade233133025f12 100644 (file)
@@ -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,