EMMS Developers,

     I noticed that EMMS will start redisplaying lyrics when it is
     paused.  I looked into it, and noticed that the `timer-duration'
     function will remove any negative numbers, so in
     `emms-lyrics-set-timer', when the variable `time' is set, and is
     negative, when `run-at-time' is called, `timer-duration' changes it
     to a positive value, causing old lyrics to be displayed again.
     Setting a check for a positive value fixes this.  The patch is
     attached.

Ian D

diff --git a/lisp/emms-lyrics.el b/lisp/emms-lyrics.el
index 6b28b22..fdfc445 100644
--- a/lisp/emms-lyrics.el
+++ b/lisp/emms-lyrics.el
@@ -410,18 +410,19 @@ job."
                                emms-lyrics-elapsed-time)))
             (next-lyric (and (cdr lyrics-alist)
                              (cdr (cadr lyrics-alist)))))
-        (setq line (1+ line))
-        (setq emms-lyrics-timers
-              (append emms-lyrics-timers
-                      (list
-                       (run-at-time (format "%d sec" time)
-                                    nil
-                                    'emms-lyrics-display-handler
-                                    lyric
-                                    next-lyric
-                                    line
-                                    (and next-time (- next-time time)))))))
-      (setq lyrics-alist (cdr lyrics-alist)))))
+	(when (> time 0)
+	  (setq line (1+ line))
+	  (setq emms-lyrics-timers
+		(append emms-lyrics-timers
+			(list
+			 (run-at-time (format "%d sec" time)
+				      nil
+				      'emms-lyrics-display-handler
+				      lyric
+				      next-lyric
+				      line
+				      (and next-time (- next-time time))))))
+	(setq lyrics-alist (cdr lyrics-alist)))))))
 
 (defun emms-lyrics-mode-line ()
   "Add lyric to the mode line."
_______________________________________________
Emms-patches mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/emms-patches

Reply via email to