Clear scroll interpolation when interpolated scroll completes

* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): Set
saved interpolation to nil upon completion.
This commit is contained in:
Po Lu 2021-12-08 18:36:18 +08:00
parent d8c383b25e
commit f10d4b31d6

View file

@ -550,7 +550,8 @@ animation."
(rem (window-parameter nil 'interpolated-scroll-remainder))
(time (window-parameter nil 'interpolated-scroll-remainder-time)))
(when (and rem time
(< (- (float-time) time) 1.0))
(< (- (float-time) time) 1.0)
(eq (< delta 0) (< rem 0)))
(setq delta (+ delta rem)))
(while-no-input
(unwind-protect
@ -568,11 +569,18 @@ animation."
(ceiling (* (* delta factor)
(/ between-scroll total-time)))))
(setq last-time (float-time)))
(when (< percentage 1)
(set-window-parameter nil 'interpolated-scroll-remainder
(* delta (- 1 percentage)))
(set-window-parameter nil 'interpolated-scroll-remainder-time
(float-time)))))))
(if (< percentage 1)
(progn
(set-window-parameter nil 'interpolated-scroll-remainder
(* delta (- 1 percentage)))
(set-window-parameter nil 'interpolated-scroll-remainder-time
(float-time)))
(set-window-parameter nil
'interpolated-scroll-remainder
nil)
(set-window-parameter nil
'interpolated-scroll-remainder-time
nil))))))
(defun pixel-scroll-precision-scroll-up (delta)
"Scroll the current window up by DELTA pixels."