diff options
Diffstat (limited to 'firmware/drivers/lcd-16bit-common.c')
-rw-r--r-- | firmware/drivers/lcd-16bit-common.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/drivers/lcd-16bit-common.c b/firmware/drivers/lcd-16bit-common.c index 7c766dab8a..49e515f59f 100644 --- a/firmware/drivers/lcd-16bit-common.c +++ b/firmware/drivers/lcd-16bit-common.c | |||
@@ -81,11 +81,12 @@ void lcd_clear_viewport(void) | |||
81 | } | 81 | } |
82 | else | 82 | else |
83 | { | 83 | { |
84 | if (!lcd_backdrop) | 84 | if (lcd_backdrop && lcd_current_viewport->buffer == &lcd_framebuffer_default) |
85 | { | 85 | { |
86 | do | 86 | do |
87 | { | 87 | { |
88 | memset16(dst, lcd_current_viewport->bg_pattern, len); | 88 | memcpy(dst, PTR_ADD(dst, lcd_backdrop_offset), |
89 | len * sizeof(fb_data)); | ||
89 | dst += step; | 90 | dst += step; |
90 | } | 91 | } |
91 | while (dst <= dst_end); | 92 | while (dst <= dst_end); |
@@ -94,8 +95,7 @@ void lcd_clear_viewport(void) | |||
94 | { | 95 | { |
95 | do | 96 | do |
96 | { | 97 | { |
97 | memcpy(dst, PTR_ADD(dst, lcd_backdrop_offset), | 98 | memset16(dst, lcd_current_viewport->bg_pattern, len); |
98 | len * sizeof(fb_data)); | ||
99 | dst += step; | 99 | dst += step; |
100 | } | 100 | } |
101 | while (dst <= dst_end); | 101 | while (dst <= dst_end); |