summaryrefslogtreecommitdiff
path: root/lisp/pixel-scroll.el
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-11-28 09:06:11 +0800
committerPo Lu <luangruo@yahoo.com>2021-11-28 09:06:11 +0800
commit3c2afa66a217da84760849ed954245856f7e5810 (patch)
tree36a234147ae096cb06155a507d8e04532f70f5fa /lisp/pixel-scroll.el
parent338f7802373f1cfcc1b3749bbd46091fdef727f4 (diff)
downloademacs-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.el11
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.