diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2010-06-19 10:23:31 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2010-06-19 10:23:31 +0200 |
commit | e7a6f08bbc22a5cc547303219c384ac9702e3066 (patch) | |
tree | 47621120c3c9a2b0e813d40339fee153c35328b6 /glcdskin | |
parent | f5f1d102c99ef7b3f1e0aec6463a8c17d3262bad (diff) | |
download | graphlcd-base-e7a6f08bbc22a5cc547303219c384ac9702e3066.tar.gz graphlcd-base-e7a6f08bbc22a5cc547303219c384ac9702e3066.tar.bz2 |
text-object: fix to avoid stumbling scrolling
Diffstat (limited to 'glcdskin')
-rw-r--r-- | glcdskin/object.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/glcdskin/object.c b/glcdskin/object.c index 5e63361..651b199 100644 --- a/glcdskin/object.c +++ b/glcdskin/object.c @@ -571,9 +571,15 @@ void cSkinObject::Render(GLCD::cBitmap * screen) } if (mScrollOffset) { + int corr_scrolloffset = mScrollOffset; + if ((int)(timestamp-mLastChange) < currScrollTime) { + corr_scrolloffset -= currScrollSpeed; + if (corr_scrolloffset < 0) + corr_scrolloffset = 0; + } w += font->Width(" "); std::string textdoubled = text + " " + text; - screen->DrawText(x, Pos().y, x + Size().w - 1, textdoubled, font, mColor, true, mScrollOffset); + screen->DrawText(x, Pos().y, x + Size().w - 1, textdoubled, font, mColor, true, corr_scrolloffset); } else { screen->DrawText(x, Pos().y, x + Size().w - 1, text, font, mColor, true, mScrollOffset); } |