diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index a55ccc3..6549fac 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -336,6 +336,7 @@ void viewport_set_fullscreen(struct viewport *vp,
vp->lst_pattern = global_settings.lst_color;
#endif
}
+ vp->disable_backdrop = false;
#endif
#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
diff --git a/firmware/drivers/lcd-16bit-common.c b/firmware/drivers/lcd-16bit-common.c
index 47f5968..e786f19 100644
--- a/firmware/drivers/lcd-16bit-common.c
+++ b/firmware/drivers/lcd-16bit-common.c
@@ -152,7 +152,7 @@ void ICODE_ATTR lcd_mono_bitmap_part(const unsigned char *src, int src_x,
break;
case DRMODE_BG:
- if (lcd_backdrop)
+ if (lcd_backdrop && !current_vp->disable_backdrop)
{
bo = lcd_backdrop_offset;
do
@@ -195,7 +195,7 @@ void ICODE_ATTR lcd_mono_bitmap_part(const unsigned char *src, int src_x,
case DRMODE_SOLID:
fg = current_vp->fg_pattern;
- if (lcd_backdrop)
+ if (lcd_backdrop && !current_vp->disable_backdrop)
{
bo = lcd_backdrop_offset;
do
@@ -467,7 +467,7 @@ static void ICODE_ATTR lcd_alpha_bitmap_part_mix(const fb_data* image,
while (--col);
break;
case DRMODE_BG:
- if(lcd_backdrop)
+ if(lcd_backdrop && !current_vp->disable_backdrop)
{
uintptr_t bo = lcd_backdrop_offset;
do
@@ -504,7 +504,7 @@ static void ICODE_ATTR lcd_alpha_bitmap_part_mix(const fb_data* image,
while (--col);
break;
case DRMODE_SOLID:
- if(lcd_backdrop)
+ if(lcd_backdrop && !current_vp->disable_backdrop)
{
uintptr_t bo = lcd_backdrop_offset;
do
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h
index 76b8b09..3fcd1ab 100644
--- a/firmware/export/lcd.h
+++ b/firmware/export/lcd.h
@@ -54,6 +54,7 @@ struct viewport {
unsigned lse_pattern;
unsigned lst_pattern;
#endif
+ bool disable_backdrop;
#endif
};