summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-08-26 10:30:11 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-08-26 10:30:11 +0000
commitb5aceb8d2b2c60e8a00c0b27271652256119b8f3 (patch)
tree3b9883510a6e5bd51632169ecbd61aabf4f28131
parent446828b2fb06ee9a38e388f61af4cc150552bb82 (diff)
downloadrockbox-b5aceb8d2b2c60e8a00c0b27271652256119b8f3.zip
rockbox-b5aceb8d2b2c60e8a00c0b27271652256119b8f3.tar.gz
rockbox-b5aceb8d2b2c60e8a00c0b27271652256119b8f3.tar.bz2
rockbox-b5aceb8d2b2c60e8a00c0b27271652256119b8f3.tar.xz
Propfont fix/kludge for the scroll code. Now doesn't garble the line and should start scrolling the lines that need it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1981 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/lcd.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c
index 4c36ee1..4d805b2 100644
--- a/firmware/drivers/lcd.c
+++ b/firmware/drivers/lcd.c
@@ -1282,13 +1282,24 @@ void lcd_puts_scroll(int x, int y, unsigned char* string )
lcd_puts(x,y,string);
s->textlen = strlen(string);
+
+
+#if defined(LCD_PROPFONTS) || defined(LOADABLE_FONTS)
+ s->space += 2;
+ lcd_getstringsize(string,0,&w,&h);
+ if ( w > LCD_WIDTH - xmargin ) {
+#else
if ( s->textlen > s->space ) {
+#endif
s->offset=s->space;
s->startx=x;
s->starty=y;
strncpy(s->text,string,sizeof s->text);
s->text[sizeof s->text - 1] = 0;
- strncpy(s->line,string,sizeof s->line);
+ memset(s->line, 0, sizeof s->line);
+ strncpy(s->line,string,
+ s->space > (int)sizeof s->line ?
+ (int)sizeof s->line : s->space );
s->line[sizeof s->line - 1] = 0;
scroll_count = 1;
}