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 bc1dd2fc50..5769dd7912 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)
99{ 99{
100 bool enable_event = false; 100 bool enable_event = false;
101 static bool was_enabled[NB_SCREENS] = {false}; 101 static bool was_enabled[NB_SCREENS] = {false};
102 static bool after_boot[NB_SCREENS] = {false};
102 int i; 103 int i;
103 104
104 FOR_NB_SCREENS(i) 105 FOR_NB_SCREENS(i)
@@ -116,7 +117,7 @@ static void toggle_theme(enum screen_type screen, bool force)
116#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 117#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
117 screens[screen].backdrop_show(sb_get_backdrop(screen)); 118 screens[screen].backdrop_show(sb_get_backdrop(screen));
118#endif 119#endif
119 if (!first_boot && (!was_enabled[screen] || force)) 120 if (LIKELY(after_boot[screen]) && (!was_enabled[screen] || force))
120 { 121 {
121 struct viewport deadspace, user; 122 struct viewport deadspace, user;
122 viewport_set_defaults(&user, screen); 123 viewport_set_defaults(&user, screen);
@@ -176,6 +177,8 @@ static void toggle_theme(enum screen_type screen, bool force)
176 send_event(GUI_EVENT_THEME_CHANGED, NULL); 177 send_event(GUI_EVENT_THEME_CHANGED, NULL);
177 FOR_NB_SCREENS(i) 178 FOR_NB_SCREENS(i)
178 was_enabled[i] = is_theme_enabled(i); 179 was_enabled[i] = is_theme_enabled(i);
180
181 after_boot[screen] = true;
179} 182}
180 183
181void viewportmanager_theme_enable(enum screen_type screen, bool enable, 184void viewportmanager_theme_enable(enum screen_type screen, bool enable,