summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/usb_screen.c35
1 files changed, 14 insertions, 21 deletions
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c
index ff437ca10a..200abafcc4 100644
--- a/apps/gui/usb_screen.c
+++ b/apps/gui/usb_screen.c
@@ -134,7 +134,6 @@ struct usb_screen_vps_t
134static void usb_screen_fix_viewports(struct screen *screen, 134static void usb_screen_fix_viewports(struct screen *screen,
135 struct usb_screen_vps_t *usb_screen_vps) 135 struct usb_screen_vps_t *usb_screen_vps)
136{ 136{
137 bool disable = true;
138 int logo_width, logo_height; 137 int logo_width, logo_height;
139 struct viewport *parent = &usb_screen_vps->parent; 138 struct viewport *parent = &usb_screen_vps->parent;
140 struct viewport *logo = &usb_screen_vps->logo; 139 struct viewport *logo = &usb_screen_vps->logo;
@@ -154,11 +153,7 @@ static void usb_screen_fix_viewports(struct screen *screen,
154 logo_height = BMPHEIGHT_usblogo; 153 logo_height = BMPHEIGHT_usblogo;
155 } 154 }
156 155
157 viewport_set_defaults(parent, screen->screen_type); 156 viewportmanager_theme_enable(screen->screen_type, true, parent);
158 disable = (parent->width < logo_width || parent->height < logo_height);
159 viewportmanager_theme_enable(screen->screen_type, !disable, parent);
160 screen->clear_display();
161 screen->scroll_stop();
162 157
163 *logo = *parent; 158 *logo = *parent;
164 logo->x = parent->x + parent->width - logo_width; 159 logo->x = parent->x + parent->width - logo_width;
@@ -259,19 +254,6 @@ void gui_usb_screen_run(bool early_usb)
259 usb_keypad_mode = global_settings.usb_keypad_mode; 254 usb_keypad_mode = global_settings.usb_keypad_mode;
260#endif 255#endif
261 256
262 if(!early_usb)
263 {
264 /* The font system leaves the .fnt fd's open, so we need for force close them all */
265#ifdef HAVE_LCD_BITMAP
266 FOR_NB_SCREENS(i)
267 {
268 font_unload(screens[i].getuifont());
269 screens[i].setuifont(FONT_SYSFIXED);
270 }
271 skin_unload_all();
272#endif
273 }
274
275 FOR_NB_SCREENS(i) 257 FOR_NB_SCREENS(i)
276 { 258 {
277 struct screen *screen = &screens[i]; 259 struct screen *screen = &screens[i];
@@ -285,6 +267,17 @@ void gui_usb_screen_run(bool early_usb)
285#endif 267#endif
286 } 268 }
287 269
270 /* update the UI before disabling fonts, this maximizes the propability
271 * that font cache lookups succeed during USB */
272 send_event(GUI_EVENT_ACTIONUPDATE, NULL);
273#ifdef HAVE_LCD_BITMAP
274 if(!early_usb)
275 {
276 /* The font system leaves the .fnt fd's open, so we need for force close them all */
277 font_disable_all();
278 }
279#endif
280
288 usb_acknowledge(SYS_USB_CONNECTED_ACK); 281 usb_acknowledge(SYS_USB_CONNECTED_ACK);
289 282
290 while (1) 283 while (1)
@@ -327,12 +320,13 @@ void gui_usb_screen_run(bool early_usb)
327#ifdef HAVE_LCD_CHARCELLS 320#ifdef HAVE_LCD_CHARCELLS
328 status_set_usb(false); 321 status_set_usb(false);
329#endif /* HAVE_LCD_CHARCELLS */ 322#endif /* HAVE_LCD_CHARCELLS */
323
330#ifdef HAVE_LCD_BITMAP 324#ifdef HAVE_LCD_BITMAP
331 if(!early_usb) 325 if(!early_usb)
332 { 326 {
327 font_enable_all();
333 /* Not pretty, reload all settings so fonts are loaded again correctly */ 328 /* Not pretty, reload all settings so fonts are loaded again correctly */
334 settings_apply(true); 329 settings_apply(true);
335 settings_apply_skins();
336 /* Reload playlist */ 330 /* Reload playlist */
337 playlist_resume(); 331 playlist_resume();
338 } 332 }
@@ -345,4 +339,3 @@ void gui_usb_screen_run(bool early_usb)
345 } 339 }
346 340
347} 341}
348