Small adjustments to precision pixel scrolling

* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-factor): Adjust for
increased accuracy.
(pixel-scroll-precision-interpolate): Slightly decrease accuracy
in exchange for consing less floats.
(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
Fix usage of function.
This commit is contained in:
Po Lu 2022-09-21 19:31:45 +08:00
parent 61e4964a8a
commit 517268d943

View file

@ -193,7 +193,7 @@ Nil means to not interpolate such scrolls."
:type 'float
:version "29.1")
(defcustom pixel-scroll-precision-interpolation-factor 4.0
(defcustom pixel-scroll-precision-interpolation-factor 2.0
"A factor to apply to the distance of an interpolated scroll."
:group 'mouse
:type 'float
@ -635,18 +635,19 @@ to `pixel-scroll-precision-interpolation-factor'."
(selected-window))
(redisplay t))
(sleep-for between-scroll)
(setq time-elapsed (+ time-elapsed
(- (float-time) last-time))
percentage (/ time-elapsed total-time))
(let* ((throw-on-input nil)
(absolute-delta (* (min 1 percentage) delta factor))
(relative-delta (abs
(round (- absolute-delta last-delta)))))
(setq last-delta absolute-delta)
(if (< delta 0)
(pixel-scroll-precision-scroll-down relative-delta)
(pixel-scroll-precision-scroll-up relative-delta)))
(setq last-time (float-time)))
(let ((time (float-time)))
(setq time-elapsed (+ time-elapsed
(- time last-time))
percentage (/ time-elapsed total-time))
(let* ((throw-on-input nil)
(absolute-delta (* (min 1 percentage) delta factor))
(relative-delta (abs
(round (- absolute-delta last-delta)))))
(setq last-delta absolute-delta)
(if (< delta 0)
(pixel-scroll-precision-scroll-down relative-delta)
(pixel-scroll-precision-scroll-up relative-delta)))
(setq last-time time)))
(if (< percentage 1)
(progn
(set-window-parameter nil 'interpolated-scroll-remainder
@ -830,7 +831,7 @@ It is a vector of the form [ VELOCITY TIME SIGN ]."
;; interpolation factor,
;; since we want exactly 1
;; page to be scrolled.
0)
nil 1)
(cua-scroll-up)))
(defun pixel-scroll-interpolate-up ()
@ -838,7 +839,7 @@ It is a vector of the form [ VELOCITY TIME SIGN ]."
(interactive)
(if pixel-scroll-precision-interpolate-page
(pixel-scroll-precision-interpolate (window-text-height nil t)
0)
nil 1)
(cua-scroll-down)))
;;;###autoload