From c78d2f296c854cefa76bb6ae53988d1d52d63a53 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sun, 26 Apr 2009 12:55:15 +0200 Subject: [PATCH] fix drawing statusbar if player was stopped at start this also adds "by accident" scrolling of currently playing song in statusbar if player is paused. --- src/status.cpp | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/status.cpp b/src/status.cpp index fbbdf498..f45bcd6a 100644 --- a/src/status.cpp +++ b/src/status.cpp @@ -144,20 +144,8 @@ void TraceMpdStatus() else block_progressbar_update = !allow_statusbar_unlock; - StatusChanges changes; - switch (Mpd->GetState()) - { - case psStop: - changes.PlayerState = 1; - NcmpcppStatusChanged(Mpd, changes, NULL); - break; - case psPause: - changes.ElapsedTime = 1; // restore status - NcmpcppStatusChanged(Mpd, changes, NULL); - break; - default: - break; - } + if (Mpd->GetState() < psPlay) + Statusbar() << wclrtoeol; } } } @@ -372,7 +360,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *) } static time_t now, past = 0; time(&now); - if ((now > past || changed.SongID) && Mpd->GetState() == psPlay) + if ((now > past || changed.SongID) && Mpd->GetState() > psStop) { time(&past); if (np.Empty()) @@ -385,7 +373,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *) int mpd_elapsed = Mpd->GetElapsedTime(); if (elapsed < mpd_elapsed-2 || elapsed+1 > mpd_elapsed) elapsed = mpd_elapsed; - else + else if (Mpd->GetState() == psPlay) elapsed++; if (!block_statusbar_update && Config.statusbar_visibility)