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.
This commit is contained in:
@@ -144,20 +144,8 @@ void TraceMpdStatus()
|
|||||||
else
|
else
|
||||||
block_progressbar_update = !allow_statusbar_unlock;
|
block_progressbar_update = !allow_statusbar_unlock;
|
||||||
|
|
||||||
StatusChanges changes;
|
if (Mpd->GetState() < psPlay)
|
||||||
switch (Mpd->GetState())
|
Statusbar() << wclrtoeol;
|
||||||
{
|
|
||||||
case psStop:
|
|
||||||
changes.PlayerState = 1;
|
|
||||||
NcmpcppStatusChanged(Mpd, changes, NULL);
|
|
||||||
break;
|
|
||||||
case psPause:
|
|
||||||
changes.ElapsedTime = 1; // restore status
|
|
||||||
NcmpcppStatusChanged(Mpd, changes, NULL);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -372,7 +360,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
|
|||||||
}
|
}
|
||||||
static time_t now, past = 0;
|
static time_t now, past = 0;
|
||||||
time(&now);
|
time(&now);
|
||||||
if ((now > past || changed.SongID) && Mpd->GetState() == psPlay)
|
if ((now > past || changed.SongID) && Mpd->GetState() > psStop)
|
||||||
{
|
{
|
||||||
time(&past);
|
time(&past);
|
||||||
if (np.Empty())
|
if (np.Empty())
|
||||||
@@ -385,7 +373,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
|
|||||||
int mpd_elapsed = Mpd->GetElapsedTime();
|
int mpd_elapsed = Mpd->GetElapsedTime();
|
||||||
if (elapsed < mpd_elapsed-2 || elapsed+1 > mpd_elapsed)
|
if (elapsed < mpd_elapsed-2 || elapsed+1 > mpd_elapsed)
|
||||||
elapsed = mpd_elapsed;
|
elapsed = mpd_elapsed;
|
||||||
else
|
else if (Mpd->GetState() == psPlay)
|
||||||
elapsed++;
|
elapsed++;
|
||||||
|
|
||||||
if (!block_statusbar_update && Config.statusbar_visibility)
|
if (!block_statusbar_update && Config.statusbar_visibility)
|
||||||
|
|||||||
Reference in New Issue
Block a user