diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | render.c | 4 |
2 files changed, 3 insertions, 2 deletions
@@ -98,6 +98,7 @@ ____-__-__: Version 1.3 - Updated Italian language texts (thanks to Diego Pierotto / closes #153) - Fixed resetting of replay information (closes #156) - Added ReplayMode "audiocd" (thanks to Björn Sturzrehm - closes #138) +- Fixed: Text scroller is not UTF-8 aware (closes #146) 2009-06-01: Version 1.2 @@ -505,7 +505,7 @@ void cText2SkinRender::DrawMarquee(const txPoint &Pos, const txSize &Size, const else if (mNow >= state.nexttime) { uint nextin = Delay; if (state.direction > 0) { - if (Font->Width(Text.c_str() + state.offset) <= Size.w) { + if (Font->Width(Text.c_str() + Utf8SymChars(Text.c_str(), state.offset)) <= Size.w) { --state.direction; nextin = 1500; } else @@ -532,7 +532,7 @@ void cText2SkinRender::DrawMarquee(const txPoint &Pos, const txSize &Size, const if (Bg) mScreen->DrawRectangle(Pos.x, Pos.y, Pos.x + Size.w - 1, Pos.y + Size.h - 1, *Bg); - mScreen->DrawText(Pos.x, Pos.y, Text.c_str() + state.offset, Fg ? *Fg : 0, clrTransparent, Font, + mScreen->DrawText(Pos.x, Pos.y, Text.c_str() + Utf8SymChars(Text.c_str(), state.offset), Fg ? *Fg : 0, clrTransparent, Font, Size.w, Size.h, Align); } |