diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-charcell.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/firmware/drivers/lcd-charcell.c b/firmware/drivers/lcd-charcell.c index 46c48bb726..b1f0021ff7 100644 --- a/firmware/drivers/lcd-charcell.c +++ b/firmware/drivers/lcd-charcell.c | |||
@@ -354,7 +354,7 @@ void lcd_clear_display(void) | |||
354 | int x, y; | 354 | int x, y; |
355 | struct viewport* old_vp = current_vp; | 355 | struct viewport* old_vp = current_vp; |
356 | 356 | ||
357 | lcd_scroll_info.lines = 0; | 357 | lcd_scroll_stop(); |
358 | lcd_remove_cursor(); | 358 | lcd_remove_cursor(); |
359 | 359 | ||
360 | /* Set the default viewport - required for lcd_putxchar */ | 360 | /* Set the default viewport - required for lcd_putxchar */ |
@@ -578,6 +578,10 @@ bool lcd_putsxy_scroll_func(int x, int y, const unsigned char *string, | |||
578 | 578 | ||
579 | static void lcd_scroll_fn(struct scrollinfo* s) | 579 | static void lcd_scroll_fn(struct scrollinfo* s) |
580 | { | 580 | { |
581 | /* with line == NULL when scrolling stops. This scroller | ||
582 | * maintains no userdata so there is nothing left to do */ | ||
583 | if (!s->line) | ||
584 | return; | ||
581 | lcd_putsxyofs(s->x, s->y, s->offset, s->line); | 585 | lcd_putsxyofs(s->x, s->y, s->offset, s->line); |
582 | if (lcd_cursor.enabled) | 586 | if (lcd_cursor.enabled) |
583 | { | 587 | { |