From 5d8b53a421fd7bf486316a81ee4e7ab0658c17a9 Mon Sep 17 00:00:00 2001 From: William Xu Date: Tue, 13 Aug 2013 19:55:05 +0800 Subject: (emms-lyrics-set-timer): Don't repeat lyrics already displayed when resumed. When resuming from a paused session, played lyrics timers will have a negative time, but timer-duration is so nice to convert it as positive, thus messing lyrics display. Check the `time' to fix. Thanks to Ian D. --- lisp/emms-lyrics.el | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'lisp') diff --git a/lisp/emms-lyrics.el b/lisp/emms-lyrics.el index 6b28b22..fba6825 100644 --- a/lisp/emms-lyrics.el +++ b/lisp/emms-lyrics.el @@ -1,6 +1,6 @@ ;;; emms-lyrics.el --- Display lyrics synchronically -;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2013 Free Software Foundation, Inc. ;; Author: William Xu ;; Keywords: emms music lyrics @@ -411,17 +411,18 @@ job." (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 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." -- cgit v1.2.3