1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 063f59c..79e47bd 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -104,13 +104,10 @@ static bool showing_bars(enum screen_type screen)
 void viewportmanager_init(void)
 {
 #ifdef HAVE_LCD_BITMAP
-    int retval, i;
     add_event(GUI_EVENT_STATUSBAR_TOGGLE, false, statusbar_toggled);
-    retval = viewport_init_ui_vp();
-    FOR_NB_SCREENS(i)
-        ui_vp_info.active[i] = retval & BIT_N(i);
-    ui_vp_info.vp = custom_vp;
 #endif
+    gui_syncstatusbar_init(&statusbars);
+    sb_skin_init();
     viewportmanager_set_statusbar(VP_SB_ALLSCREENS);
 }

diff --git a/apps/main.c b/apps/main.c
index 1eed068..cdbe1ad 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -319,12 +319,12 @@ static void init(void)
     debug_init();
 #endif
     /* Must be done before any code uses the multi-screen API */
-    gui_syncstatusbar_init(&statusbars);
+    viewportmanager_init();
     storage_init();
+    gui_sync_wps_init();
     settings_reset();
     settings_load(SETTINGS_ALL);
-    gui_sync_wps_init();
-    sb_skin_init();
+    gui_usb_screen_run();
     settings_apply(true);
     init_dircache(true);
     init_dircache(false);
@@ -444,7 +444,9 @@ static void init(void)
 #endif

     /* Must be done before any code uses the multi-screen API */
-    gui_syncstatusbar_init(&statusbars);
+    viewportmanager_init();
+
+    gui_sync_wps_init();

 #if CONFIG_CHARGING && (CONFIG_CPU == SH7034)
     /* charger_inserted() can't be used here because power_thread()
@@ -551,8 +553,6 @@ static void init(void)
 #endif
     }
 
-    gui_sync_wps_init();
-    sb_skin_init();
     settings_apply(true);
     init_dircache(false);
 #ifdef HAVE_TAGCACHE