diff --git a/firmware/target/hosted/sdl/lcd-bitmap.c b/firmware/target/hosted/sdl/lcd-bitmap.c index 5f895d802d..aefbb17b42 100644 --- a/firmware/target/hosted/sdl/lcd-bitmap.c +++ b/firmware/target/hosted/sdl/lcd-bitmap.c @@ -162,7 +162,15 @@ void sim_backlight(int value) #endif } #else /* LCD_DEPTH > 8 */ +#ifdef HAVE_TRANSFLECTIVE_LCD + if (!lcd_active()) + SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, 0); + else + SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, + MAX(BACKLIGHT_OFF_ALPHA, (value * 255) / 100)); +#else SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, (value * 255) / 100); +#endif #endif /* LCD_DEPTH */ sdl_gui_update(lcd_surface, 0, 0, SIM_LCD_WIDTH, SIM_LCD_HEIGHT, diff --git a/uisimulator/common/lcd-common.c b/uisimulator/common/lcd-common.c index 47ca114cbc..9e01f3eda6 100644 --- a/uisimulator/common/lcd-common.c +++ b/uisimulator/common/lcd-common.c @@ -78,6 +78,9 @@ void lcd_remote_set_invert_display(bool invert) void lcd_sleep(void) { lcd_sleeping = true; +#ifdef HAVE_TRANSFLECTIVE_LCD + sim_backlight(0); /* completely blacken the screen */ +#endif } void lcd_awake(void)