- (with-current-buffer mpd-dock-buffer
- (let* ((songdir (file-dirname **mpd-var-file*))
- (cover (expand-file-name
- "cover.jpg"
- (paths-construct-path
- (list mpd-music-directory songdir))))
- (nocover (expand-file-name "nocover.jpg" mpd-directory))
- (scaled))
- (if (file-exists-p cover)
- (progn
- (with-temp-buffer
- (shell-command (concat "jpegtopnm " "'" cover "' 2>/dev/null"
- "|pnmnorm 2>/dev/null"
- "|pnmscale -height 48 -width 48"
- "|pnmtojpeg")
- 'insert)
- (setq scaled (buffer-string)))
- (set-extent-end-glyph
- mpd-cover-glyph
- (make-glyph (list (vector 'jpeg :data scaled)))))
- (set-extent-end-glyph
- mpd-cover-glyph
- (make-glyph (list (vector 'jpeg :file nocover))))))))
+ (unless (equal mpd-current-filename **mpd-var-file*)
+ (with-current-buffer mpd-dock-buffer
+ (let* ((songdir (file-dirname **mpd-var-file*))
+ (cover (expand-file-name
+ "cover.jpg"
+ (paths-construct-path
+ (list mpd-music-directory songdir))))
+ (nocover (expand-file-name "nocover.jpg" mpd-directory))
+ (scaled))
+ (if (file-exists-p cover)
+ (progn
+ (with-temp-buffer
+ (shell-command (concat "jpegtopnm " "'" cover "' 2>/dev/null"
+ "|pnmnorm 2>/dev/null"
+ "|pnmscale -height 48 -width 48"
+ "|pnmtojpeg")
+ 'insert)
+ (setq scaled (buffer-string)))
+ (set-extent-end-glyph
+ mpd-cover-glyph
+ (make-glyph (list (vector 'jpeg :data scaled)))))
+ (set-extent-end-glyph
+ mpd-cover-glyph
+ (make-glyph (list (vector 'jpeg :file nocover)))))))
+ (setq mpd-current-filename **mpd-var-file*)))