emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/pgtk 054319e 1/2: Merge remote-tracking branch 'origin/master' i


From: Po Lu
Subject: feature/pgtk 054319e 1/2: Merge remote-tracking branch 'origin/master' into feature/pgtk
Date: Thu, 2 Dec 2021 21:30:14 -0500 (EST)

branch: feature/pgtk
commit 054319e9fde42f211c23f6e3885f7e1fc6217caa
Merge: 15d5af8 67191f7
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Merge remote-tracking branch 'origin/master' into feature/pgtk
---
 lisp/pixel-scroll.el | 52 ++++++++++++++++++++++++++++++++--------------------
 1 file changed, 32 insertions(+), 20 deletions(-)

diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index a45a4d4..3c764ff 100644
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -109,12 +109,18 @@ This is only effective if supported by your mouse or 
touchpad."
   :type 'boolean
   :version "29.1")
 
-(defcustom pixel-scroll-precision-momentum-tick 0.16
+(defcustom pixel-scroll-precision-momentum-tick 0.01
   "Number of seconds between each momentum scroll."
   :group 'mouse
   :type 'float
   :version "29.1")
 
+(defcustom pixel-scroll-precision-momentum-seconds 1.75
+  "The maximum duration in seconds of momentum scrolling."
+  :group 'mouse
+  :type 'float
+  :version "29.1")
+
 (defcustom pixel-scroll-precision-momentum-factor 0.95
   "Factor by which to reduce scroll velocity on each momentum scroll"
   :group 'mouse
@@ -546,25 +552,31 @@ It is a vector of the form [ VELOCITY TIME ]."
         (setq state (pixel-scroll-kinetic-state))
         (when (and (aref state 1)
                    (listp (aref state 0)))
-          (unwind-protect (progn
-                            (aset state 0
-                                  (/ (pixel-scroll-calculate-velocity state) 
2))
-                            (let ((velocity (aref state 0)))
-                              (if (> velocity 0)
-                                  (while (> velocity 1)
-                                    (pixel-scroll-precision-scroll-up (round 
velocity))
-                                    (setq velocity (* velocity
-                                                      
pixel-scroll-precision-momentum-factor))
-                                    (redisplay t)
-                                    (sit-for 
pixel-scroll-precision-momentum-tick)))
-                              (while (< velocity -1)
-                                (pixel-scroll-precision-scroll-down (round 
(abs velocity)))
-                                (setq velocity (* velocity
-                                                  
pixel-scroll-precision-momentum-factor))
-                                (redisplay t)
-                                (sit-for 
pixel-scroll-precision-momentum-tick))))
-            (aset state 0 (make-ring 10))
-            (aset state 1 nil)))))))
+          (while-no-input
+            (unwind-protect (progn
+                              (aset state 0 (pixel-scroll-calculate-velocity 
state))
+                              (let ((velocity (/ (aref state 0) 3))
+                                    (time-spent 0))
+                                (if (> velocity 0)
+                                    (while (and (> velocity 0.2)
+                                                (<= time-spent 
pixel-scroll-precision-momentum-seconds))
+                                      (pixel-scroll-precision-scroll-up 
(ceiling velocity))
+                                      (setq velocity (* velocity 
pixel-scroll-precision-momentum-factor))
+                                      (redisplay t)
+                                      (sit-for 
pixel-scroll-precision-momentum-tick)
+                                      (setq time-spent (+ time-spent
+                                                          
pixel-scroll-precision-momentum-tick))))
+                                (while (and (< velocity -0.4)
+                                            (<= time-spent
+                                                
pixel-scroll-precision-momentum-seconds))
+                                  (pixel-scroll-precision-scroll-down (floor 
(abs velocity)))
+                                  (setq velocity (* velocity 
pixel-scroll-precision-momentum-factor))
+                                  (redisplay t)
+                                  (sit-for 
pixel-scroll-precision-momentum-tick)
+                                  (setq time-spent (+ time-spent
+                                                      
pixel-scroll-precision-momentum-tick)))))
+              (aset state 0 (make-ring 10))
+              (aset state 1 nil))))))))
 
 ;;;###autoload
 (define-minor-mode pixel-scroll-precision-mode



reply via email to

[Prev in Thread] Current Thread [Next in Thread]