diff options
author | Po Lu <luangruo@yahoo.com> | 2021-11-28 09:06:11 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2021-11-28 09:06:11 +0800 |
commit | 3c2afa66a217da84760849ed954245856f7e5810 (patch) | |
tree | 36a234147ae096cb06155a507d8e04532f70f5fa /lisp/pixel-scroll.el | |
parent | 338f7802373f1cfcc1b3749bbd46091fdef727f4 (diff) | |
download | emacs-3c2afa66a217da84760849ed954245856f7e5810.tar.gz emacs-3c2afa66a217da84760849ed954245856f7e5810.tar.bz2 emacs-3c2afa66a217da84760849ed954245856f7e5810.zip |
Make `pixel-scroll-precision-scroll-up' work better with overlays
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up):
Just set vscroll when on overlay.
Diffstat (limited to 'lisp/pixel-scroll.el')
-rw-r--r-- | lisp/pixel-scroll.el | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 4280dc2587b..888320cf1ae 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -456,9 +456,14 @@ the height of the current window." (window-header-line-height)))) (desired-start (posn-point desired-pos)) (desired-vscroll (cdr (posn-object-x-y desired-pos)))) - (unless (eq (window-start) desired-start) - (set-window-start nil desired-start t)) - (set-window-vscroll nil desired-vscroll t)))))) + (let ((object (posn-object desired-pos))) + (if (or (consp object) (stringp object)) + (set-window-vscroll nil (+ (window-vscroll nil t) + (- delta)) + t) + (unless (eq (window-start) desired-start) + (set-window-start nil desired-start t)) + (set-window-vscroll nil desired-vscroll t)))))))) ;; FIXME: This doesn't work when there's an image above the current ;; line that is taller than the window. |