]> git.eshelyaron.com Git - emacs.git/commitdiff
Make string-animate smoother
authorStefan Kangas <stefan@marxist.se>
Sat, 20 Nov 2021 12:12:38 +0000 (13:12 +0100)
committerStefan Kangas <stefan@marxist.se>
Sat, 20 Nov 2021 12:14:35 +0000 (13:14 +0100)
* lisp/play/animate.el (animate-total-added-delay): New defcustom.
(animate-n-steps): Double the default value.  Use :type 'natnum'.
(animate-string): Make the delay depend on the above new defcustom
divided by the number of steps.

lisp/play/animate.el

index 7eb1b2771798297adc902b61a2dd21dfd6d9e916..f3c77b31a5dda020deaa9225c7d2e6a87b9b127b 100644 (file)
   (unless (eolp) (delete-char 1))
   (insert-char char 1))
 
-(defcustom animate-n-steps 10
+(defcustom animate-n-steps 20
   "Number of steps `animate-string' will place a char before its last position."
-  :type 'integer)
+  :type 'natnum
+  :version "29.1")
+
+(defcustom animate-total-added-delay 0.5
+  "Total number of seconds to wait in between steps.
+This is added to the total time it takes to run `animate-string'
+to ensure that the animation is not too fast to be seen."
+  :type 'float
+  :version "29.1")
 
 (defvar animation-buffer-name nil
   "String naming the default buffer for animations.
@@ -130,7 +138,7 @@ in the current window."
        ;; Make sure buffer is displayed starting at the beginning.
        (set-window-start nil 1)
        ;; Display it, and wait just a little while.
-       (sit-for .05)
+        (sit-for (/ animate-total-added-delay (max animate-n-steps 1)))
        ;; Now undo the changes we made in the buffer.
        (setq list-to-undo buffer-undo-list)
        (while list-to-undo