From 80d6b369176775d05c0572a5056bb236cee3ba17 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Tue, 24 Aug 2010 16:38:00 +0200 Subject: [PATCH] status: fix drawing progressbar if third character is non-ascii --- src/status.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/status.cpp b/src/status.cpp index 6edd73fb..8c3bd33e 100644 --- a/src/status.cpp +++ b/src/status.cpp @@ -653,12 +653,15 @@ Window &Statusbar() void DrawProgressbar(unsigned elapsed, unsigned time) { - unsigned howlong = time ? wFooter->GetWidth()*elapsed/time : 0; - *wFooter << fmtBold << Config.progressbar_color; - mvwhline(wFooter->Raw(), 0, 0, Config.progressbar[2], wFooter->GetWidth()); + unsigned pb_width = wFooter->GetWidth(); + unsigned howlong = time ? pb_width*elapsed/time : 0; + *wFooter << fmtBold << Config.progressbar_color << XY(0, 0); + for (unsigned i = 0; i < pb_width; ++i) + *wFooter << Config.progressbar[2]; + wFooter->GotoXY(0, 0); if (time) { - unsigned pb_width = std::min(size_t(howlong), wFooter->GetWidth()); + pb_width = std::min(size_t(howlong), wFooter->GetWidth()); for (unsigned i = 0; i < pb_width; ++i) *wFooter << Config.progressbar[0]; if (howlong < wFooter->GetWidth())