redraw statusbar after terminal resize
previous changes broke this, so here is the fix.
This commit is contained in:
@@ -47,6 +47,7 @@ namespace Global
|
|||||||
extern bool UpdateStatusImmediately;
|
extern bool UpdateStatusImmediately;
|
||||||
extern bool MessagesAllowed;
|
extern bool MessagesAllowed;
|
||||||
extern bool RedrawHeader;
|
extern bool RedrawHeader;
|
||||||
|
extern bool RedrawStatusbar;
|
||||||
|
|
||||||
extern std::string VolumeState;
|
extern std::string VolumeState;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -376,14 +376,9 @@ int main(int argc, char *argv[])
|
|||||||
wFooter->Resize(COLS, wFooter->GetHeight());
|
wFooter->Resize(COLS, wFooter->GetHeight());
|
||||||
|
|
||||||
myScreen->Refresh();
|
myScreen->Refresh();
|
||||||
PlayerState mpd_state = Mpd->GetState();
|
RedrawStatusbar = 1;
|
||||||
StatusChanges changes;
|
StatusChanges changes;
|
||||||
changes.StatusFlags = 1; // force status update
|
changes.StatusFlags = 1; // force status update
|
||||||
if (mpd_state == psPlay || mpd_state == psPause)
|
|
||||||
changes.ElapsedTime = 1; // restore status
|
|
||||||
else
|
|
||||||
changes.PlayerState = 1;
|
|
||||||
|
|
||||||
NcmpcppStatusChanged(Mpd, changes, NULL);
|
NcmpcppStatusChanged(Mpd, changes, NULL);
|
||||||
}
|
}
|
||||||
else if (Keypressed(input, Key.GoToParentDir))
|
else if (Keypressed(input, Key.GoToParentDir))
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ using std::string;
|
|||||||
string Global::VolumeState;
|
string Global::VolumeState;
|
||||||
|
|
||||||
bool Global::UpdateStatusImmediately = 0;
|
bool Global::UpdateStatusImmediately = 0;
|
||||||
|
bool Global::RedrawStatusbar = 0;
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
@@ -360,7 +361,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() > psStop)
|
if (((now > past || changed.SongID) && Mpd->GetState() > psStop) || RedrawStatusbar)
|
||||||
{
|
{
|
||||||
time(&past);
|
time(&past);
|
||||||
if (np.Empty())
|
if (np.Empty())
|
||||||
@@ -373,7 +374,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 if (Mpd->GetState() == psPlay)
|
else if (Mpd->GetState() == psPlay && !RedrawStatusbar)
|
||||||
elapsed++;
|
elapsed++;
|
||||||
|
|
||||||
if (!block_statusbar_update && Config.statusbar_visibility)
|
if (!block_statusbar_update && Config.statusbar_visibility)
|
||||||
@@ -412,6 +413,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
|
|||||||
}
|
}
|
||||||
wFooter->SetColor(Config.statusbar_color);
|
wFooter->SetColor(Config.statusbar_color);
|
||||||
}
|
}
|
||||||
|
RedrawStatusbar = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user