mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
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:
parent
61e4964a8a
commit
517268d943
1 changed files with 16 additions and 15 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue