branch: externals/emms
commit 47c68835b213e79c3651b81a6579a114d2450a52
Author: Yoni Rabkin <[email protected]>
Commit: Yoni Rabkin <[email protected]>

    * emms-browser.el: bug fix: stop hooks run too late.
    
    Ensure that the current track is stopped so that stop-hooks can run
    before playing a new track.
---
 emms-browser.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/emms-browser.el b/emms-browser.el
index bbdeaaf6e6..ce9397dd15 100644
--- a/emms-browser.el
+++ b/emms-browser.el
@@ -1316,12 +1316,14 @@ Return the playlist buffer point-max before adding."
   (let ((old-pos (emms-browser-add-tracks)))
     (with-current-emms-playlist
       (goto-char old-pos)
+      ;; Stop what we are currently playing to allow `emms-stop'
+      ;; related hooks to run.
+      (when emms-player-playing-p
+       (emms-stop))
       ;; if we're sitting on a group name, move forward
       (unless (emms-playlist-track-at (point))
         (emms-playlist-next))
       (emms-playlist-select (point)))
-    ;; FIXME: is there a better way of doing this?
-    (emms-stop)
     (emms-start)))
 
 (defun emms-isearch-buffer ()

Reply via email to