]> git.eshelyaron.com Git - emacs.git/commitdiff
Make interpolated scrolling work better
authorPo Lu <luangruo@yahoo.com>
Wed, 8 Dec 2021 05:40:12 +0000 (13:40 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 8 Dec 2021 05:40:12 +0000 (13:40 +0800)
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Stop using `while-no-input'.

lisp/pixel-scroll.el

index 10736de2ae4d2470f2a0737494576a4f864f14a0..6191c0530c4f039d9bcdc2383711906464cd43e2 100644 (file)
@@ -541,24 +541,23 @@ the height of the current window."
   "Interpolate a scroll of DELTA pixels.
 This results in the window being scrolled by DELTA pixels with an
 animation."
-  (while-no-input
-    (let ((percentage 0)
-          (total-time pixel-scroll-precision-interpolation-total-time)
-          (factor pixel-scroll-precision-interpolation-factor)
-          (time-elapsed 0.0)
-          (between-scroll 0.001))
-      (while (< percentage 1)
-        (sit-for between-scroll)
-        (setq time-elapsed (+ time-elapsed between-scroll)
-              percentage (/ time-elapsed total-time))
-        (if (< delta 0)
-            (pixel-scroll-precision-scroll-down
-             (ceiling (abs (* (* delta factor)
-                              (/ between-scroll total-time)))))
-          (pixel-scroll-precision-scroll-up
-           (ceiling (* (* delta factor)
-                       (/ between-scroll total-time)))))
-        (redisplay t)))))
+  (let ((percentage 0)
+        (total-time pixel-scroll-precision-interpolation-total-time)
+        (factor pixel-scroll-precision-interpolation-factor)
+        (time-elapsed 0.0)
+        (between-scroll 0.001))
+    (while (< percentage 1)
+      (sit-for between-scroll)
+      (setq time-elapsed (+ time-elapsed between-scroll)
+            percentage (/ time-elapsed total-time))
+      (if (< delta 0)
+          (pixel-scroll-precision-scroll-down
+           (ceiling (abs (* (* delta factor)
+                            (/ between-scroll total-time)))))
+        (pixel-scroll-precision-scroll-up
+         (ceiling (* (* delta factor)
+                     (/ between-scroll total-time)))))
+      (redisplay t))))
 
 (defun pixel-scroll-precision-scroll-up (delta)
   "Scroll the current window up by DELTA pixels."