summaryrefslogtreecommitdiff
path: root/lisp/pixel-scroll.el
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-12-23 21:26:59 +0800
committerPo Lu <luangruo@yahoo.com>2021-12-23 21:26:59 +0800
commit03dc54ba7fbd83e93b6841acbed14ae8ce319b7c (patch)
treeb1d1040bac0e6380506819863b9e54b74b59b694 /lisp/pixel-scroll.el
parent902f343c18e1894cd5a0e702151fa457651fe0b1 (diff)
downloademacs-03dc54ba7fbd83e93b6841acbed14ae8ce319b7c.tar.gz
Fix precision scrolling down for multi-line display strings
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page): Make sure Y delta is appropriate before deciding on next-pos.
Diffstat (limited to 'lisp/pixel-scroll.el')
-rw-r--r--lisp/pixel-scroll.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index 223bc7fbc47..975c5133f11 100644
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -461,6 +461,11 @@ the height of the current window."
(when (zerop (vertical-motion (1+ scroll-margin)))
(set-window-start nil desired-start)
(signal 'end-of-buffer nil))
+ (while (when-let ((posn (posn-at-point)))
+ (< (cdr (posn-x-y posn)) delta))
+ (when (zerop (vertical-motion 1))
+ (set-window-start nil desired-start)
+ (signal 'end-of-buffer nil)))
(point)))
(scroll-preserve-screen-position nil)
(auto-window-vscroll nil))