emacs-diffs
[Top][All Lists]
Advanced

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

master 52f3fe4 2/2: Fix jumping cursor during interpolated scrolls


From: Po Lu
Subject: master 52f3fe4 2/2: Fix jumping cursor during interpolated scrolls
Date: Wed, 8 Dec 2021 22:41:53 -0500 (EST)

branch: master
commit 52f3fe46a35df28cc7a07c0a3f551e67760455b2
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix jumping cursor during interpolated scrolls
    
    * lisp/pixel-scroll.el
    (pixel-scroll-precision-scroll-down-page): Go to next position
    before setting start or vscroll.
---
 lisp/pixel-scroll.el | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index 2bef8ca..f21cdae 100644
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -459,6 +459,14 @@ the height of the current window."
         (set-window-vscroll nil (+ (window-vscroll nil t)
                                    delta)
                             t)
+      (when (and (or (< (point) next-pos))
+                 (let ((pos-visibility (pos-visible-in-window-p next-pos nil 
t)))
+                   (and pos-visibility
+                        (or (eq (length pos-visibility) 2)
+                            (when-let* ((posn (posn-at-point next-pos)))
+                              (> (cdr (posn-object-width-height posn))
+                                 usable-height))))))
+        (goto-char next-pos))
       (set-window-start nil (if (zerop (window-hscroll))
                                 desired-start
                               (save-excursion
@@ -466,15 +474,7 @@ the height of the current window."
                                 (beginning-of-visual-line)
                                 (point)))
                         t)
-      (set-window-vscroll nil desired-vscroll t))
-    (if (and (or (< (point) next-pos))
-             (let ((pos-visibility (pos-visible-in-window-p next-pos nil t)))
-               (and pos-visibility
-                    (or (eq (length pos-visibility) 2)
-                        (when-let* ((posn (posn-at-point next-pos)))
-                          (> (cdr (posn-object-width-height posn))
-                             usable-height))))))
-        (goto-char next-pos))))
+      (set-window-vscroll nil desired-vscroll t))))
 
 (defun pixel-scroll-precision-scroll-down (delta)
   "Scroll the current window down by DELTA pixels."



reply via email to

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