[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."