summaryrefslogtreecommitdiff
path: root/apps/gui/viewport.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/viewport.c')
-rw-r--r--apps/gui/viewport.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 6e4d9913c4..9b35c86c17 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -110,12 +110,13 @@ static void toggle_theme(enum screen_type screen, bool force)
110 110
111 if (is_theme_enabled(screen)) 111 if (is_theme_enabled(screen))
112 { 112 {
113 bool first_boot = theme_stack_top[screen] == 0;
113 /* remove the left overs from the previous screen. 114 /* remove the left overs from the previous screen.
114 * could cause a tiny flicker. Redo your screen code if that happens */ 115 * could cause a tiny flicker. Redo your screen code if that happens */
115#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 116#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
116 screens[screen].backdrop_show(sb_get_backdrop(screen)); 117 screens[screen].backdrop_show(sb_get_backdrop(screen));
117#endif 118#endif
118 if (!was_enabled[screen] || force) 119 if (!first_boot && (!was_enabled[screen] || force))
119 { 120 {
120 struct viewport deadspace, user; 121 struct viewport deadspace, user;
121 viewport_set_defaults(&user, screen); 122 viewport_set_defaults(&user, screen);
@@ -161,7 +162,7 @@ static void toggle_theme(enum screen_type screen, bool force)
161 screens[screen].update_viewport(); 162 screens[screen].update_viewport();
162 } 163 }
163 } 164 }
164 send_event(GUI_EVENT_ACTIONUPDATE, (void*)1); /* force a redraw */ 165 send_event(GUI_EVENT_ACTIONUPDATE, (void*)!first_boot);
165 } 166 }
166 else 167 else
167 { 168 {