[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 517268d943 2/2: Small adjustments to precision pixel scrolling
From: |
Po Lu |
Subject: |
master 517268d943 2/2: Small adjustments to precision pixel scrolling |
Date: |
Wed, 21 Sep 2022 07:33:06 -0400 (EDT) |
branch: master
commit 517268d943b95f0cb3bd7dfa11e02ade06d3abf4
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
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.
---
lisp/pixel-scroll.el | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index a04a34b01e..10da9cb9ab 100644
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -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