summaryrefslogtreecommitdiff
path: root/glcdskin
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2010-06-19 10:23:31 +0200
committermrwastl <mrwastl@users.sourceforge.net>2010-06-19 10:23:31 +0200
commite7a6f08bbc22a5cc547303219c384ac9702e3066 (patch)
tree47621120c3c9a2b0e813d40339fee153c35328b6 /glcdskin
parentf5f1d102c99ef7b3f1e0aec6463a8c17d3262bad (diff)
downloadgraphlcd-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.c8
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);
}