diff options
Diffstat (limited to 'apps/plugins/lib/grey_scroll.c')
-rw-r--r-- | apps/plugins/lib/grey_scroll.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/apps/plugins/lib/grey_scroll.c b/apps/plugins/lib/grey_scroll.c index 12a27daf23..56021d149a 100644 --- a/apps/plugins/lib/grey_scroll.c +++ b/apps/plugins/lib/grey_scroll.c | |||
@@ -191,7 +191,8 @@ void grey_ub_scroll_up(int count) | |||
191 | _grey_info.fg_brightness : | 191 | _grey_info.fg_brightness : |
192 | _grey_info.bg_brightness]; | 192 | _grey_info.bg_brightness]; |
193 | 193 | ||
194 | #if LCD_PIXELFORMAT == VERTICAL_PACKING | 194 | #if (LCD_PIXELFORMAT == VERTICAL_PACKING) \ |
195 | || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) | ||
195 | if (count & _GREY_BMASK) | 196 | if (count & _GREY_BMASK) |
196 | { | 197 | { |
197 | /* Scrolling by fractional blocks - move pixel wise. */ | 198 | /* Scrolling by fractional blocks - move pixel wise. */ |
@@ -262,7 +263,8 @@ void grey_ub_scroll_down(int count) | |||
262 | _grey_info.fg_brightness : | 263 | _grey_info.fg_brightness : |
263 | _grey_info.bg_brightness]; | 264 | _grey_info.bg_brightness]; |
264 | 265 | ||
265 | #if LCD_PIXELFORMAT == VERTICAL_PACKING | 266 | #if (LCD_PIXELFORMAT == VERTICAL_PACKING) \ |
267 | || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) | ||
266 | if (count & _GREY_BMASK) | 268 | if (count & _GREY_BMASK) |
267 | { | 269 | { |
268 | /* Scrolling by fractional blocks - move pixel wise. */ | 270 | /* Scrolling by fractional blocks - move pixel wise. */ |
@@ -302,6 +304,9 @@ void grey_ub_scroll_down(int count) | |||
302 | } | 304 | } |
303 | while (dst < line_end); | 305 | while (dst < line_end); |
304 | } | 306 | } |
307 | /* Top pixel in a block has the highest address, but dst must point | ||
308 | * to the lowest address in that block for the subsequent fill. */ | ||
309 | dst -= _GREY_BMASK; | ||
305 | } | 310 | } |
306 | else | 311 | else |
307 | #endif | 312 | #endif |
@@ -311,7 +316,7 @@ void grey_ub_scroll_down(int count) | |||
311 | dst -= blen; | 316 | dst -= blen; |
312 | _grey_info.rb->memmove(dst, start, blen); | 317 | _grey_info.rb->memmove(dst, start, blen); |
313 | } | 318 | } |
314 | _grey_info.rb->memset(start, blank, dst - start); | 319 | _grey_info.rb->memset(start, blank, dst - start); |
315 | /* Fill remainder at once. */ | 320 | /* Fill remainder at once. */ |
316 | #ifdef SIMULATOR | 321 | #ifdef SIMULATOR |
317 | _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, | 322 | _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, |