summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-scroll.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/lcd-scroll.c')
-rw-r--r--firmware/drivers/lcd-scroll.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/firmware/drivers/lcd-scroll.c b/firmware/drivers/lcd-scroll.c
index d8bfd72dde..dfdf78ecda 100644
--- a/firmware/drivers/lcd-scroll.c
+++ b/firmware/drivers/lcd-scroll.c
@@ -185,10 +185,9 @@ static void LCDFN(scroll_worker)(void)
185{ 185{
186 int index; 186 int index;
187 bool makedelay; 187 bool makedelay;
188 bool is_default;
189 struct scroll_screen_info *si = &LCDFN(scroll_info); 188 struct scroll_screen_info *si = &LCDFN(scroll_info);
190 struct scrollinfo *s; 189 struct scrollinfo *s;
191 struct viewport *vp; 190 struct viewport *oldvp;
192 int step; 191 int step;
193 192
194 for ( index = 0; index < si->lines; index++ ) 193 for ( index = 0; index < si->lines; index++ )
@@ -206,8 +205,7 @@ static void LCDFN(scroll_worker)(void)
206 * is unaware of the swapped viewports. the vp must 205 * is unaware of the swapped viewports. the vp must
207 * be switched early so that lcd_getstringsize() picks the 206 * be switched early so that lcd_getstringsize() picks the
208 * correct font */ 207 * correct font */
209 vp = LCDFN(get_viewport)(&is_default); 208 oldvp = LCDFN(set_viewport_ex)(s->vp, 0); /* don't mark the last vp as dirty */
210 LCDFN(set_viewport_ex)(s->vp, 0); /* don't mark the last vp as dirty */
211 209
212 makedelay = false; 210 makedelay = false;
213 step = si->step; 211 step = si->step;
@@ -220,7 +218,7 @@ static void LCDFN(scroll_worker)(void)
220 /* put the line onto the display now */ 218 /* put the line onto the display now */
221 makedelay = LCDFN(scroll_now(s)); 219 makedelay = LCDFN(scroll_now(s));
222 220
223 LCDFN(set_viewport_ex)(vp, 0); /* don't mark the last vp as dirty */ 221 LCDFN(set_viewport_ex)(oldvp, 0); /* don't mark the last vp as dirty */
224 222
225 if (makedelay) 223 if (makedelay)
226 s->start_tick += si->delay + si->ticks; 224 s->start_tick += si->delay + si->ticks;