summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/viewport.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index bc1dd2f..5769dd7 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -99,6 +99,7 @@ static void toggle_theme(enum screen_type screen, bool force)
{
bool enable_event = false;
static bool was_enabled[NB_SCREENS] = {false};
+ static bool after_boot[NB_SCREENS] = {false};
int i;
FOR_NB_SCREENS(i)
@@ -116,7 +117,7 @@ static void toggle_theme(enum screen_type screen, bool force)
#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
screens[screen].backdrop_show(sb_get_backdrop(screen));
#endif
- if (!first_boot && (!was_enabled[screen] || force))
+ if (LIKELY(after_boot[screen]) && (!was_enabled[screen] || force))
{
struct viewport deadspace, user;
viewport_set_defaults(&user, screen);
@@ -176,6 +177,8 @@ static void toggle_theme(enum screen_type screen, bool force)
send_event(GUI_EVENT_THEME_CHANGED, NULL);
FOR_NB_SCREENS(i)
was_enabled[i] = is_theme_enabled(i);
+
+ after_boot[screen] = true;
}
void viewportmanager_theme_enable(enum screen_type screen, bool enable,