summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-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 4c36ee19e3..4d805b2506 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 )
1282 1282
1283 lcd_puts(x,y,string); 1283 lcd_puts(x,y,string);
1284 s->textlen = strlen(string); 1284 s->textlen = strlen(string);
1285
1286
1287#if defined(LCD_PROPFONTS) || defined(LOADABLE_FONTS)
1288 s->space += 2;
1289 lcd_getstringsize(string,0,&w,&h);
1290 if ( w > LCD_WIDTH - xmargin ) {
1291#else
1285 if ( s->textlen > s->space ) { 1292 if ( s->textlen > s->space ) {
1293#endif
1286 s->offset=s->space; 1294 s->offset=s->space;
1287 s->startx=x; 1295 s->startx=x;
1288 s->starty=y; 1296 s->starty=y;
1289 strncpy(s->text,string,sizeof s->text); 1297 strncpy(s->text,string,sizeof s->text);
1290 s->text[sizeof s->text - 1] = 0; 1298 s->text[sizeof s->text - 1] = 0;
1291 strncpy(s->line,string,sizeof s->line); 1299 memset(s->line, 0, sizeof s->line);
1300 strncpy(s->line,string,
1301 s->space > (int)sizeof s->line ?
1302 (int)sizeof s->line : s->space );
1292 s->line[sizeof s->line - 1] = 0; 1303 s->line[sizeof s->line - 1] = 0;
1293 scroll_count = 1; 1304 scroll_count = 1;
1294 } 1305 }