summaryrefslogtreecommitdiff
path: root/apps/gui/usb_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/usb_screen.c')
-rw-r--r--apps/gui/usb_screen.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c
index 50188274d2..454570bc3f 100644
--- a/apps/gui/usb_screen.c
+++ b/apps/gui/usb_screen.c
@@ -128,7 +128,7 @@ struct usb_screen_vps_t
128 128
129#ifdef HAVE_LCD_BITMAP 129#ifdef HAVE_LCD_BITMAP
130static void usb_screen_fix_viewports(struct screen *screen, 130static void usb_screen_fix_viewports(struct screen *screen,
131 struct usb_screen_vps_t *usb_screen_vps) 131 struct usb_screen_vps_t *usb_screen_vps, bool early_usb)
132{ 132{
133 int logo_width, logo_height; 133 int logo_width, logo_height;
134 struct viewport *parent = &usb_screen_vps->parent; 134 struct viewport *parent = &usb_screen_vps->parent;
@@ -147,10 +147,15 @@ static void usb_screen_fix_viewports(struct screen *screen,
147 logo_height = BMPHEIGHT_usblogo; 147 logo_height = BMPHEIGHT_usblogo;
148 } 148 }
149 149
150 viewport_set_defaults(parent, screen->screen_type); 150 if (!early_usb)
151 if (parent->width < logo_width || parent->height < logo_height) 151 {
152 viewport_set_defaults(parent, screen->screen_type);
153 if (parent->width < logo_width || parent->height < logo_height)
154 viewport_set_fullscreen(parent, screen->screen_type);
155 }
156 else
152 viewport_set_fullscreen(parent, screen->screen_type); 157 viewport_set_fullscreen(parent, screen->screen_type);
153 158
154 *logo = *parent; 159 *logo = *parent;
155 logo->x = parent->width - logo_width; 160 logo->x = parent->width - logo_width;
156 logo->y = (parent->height - logo_height) / 2; 161 logo->y = (parent->height - logo_height) / 2;
@@ -242,10 +247,10 @@ static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar)
242 viewportmanager_set_statusbar(usb_bars); 247 viewportmanager_set_statusbar(usb_bars);
243} 248}
244 249
245void gui_usb_screen_run(void) 250void gui_usb_screen_run(bool early_usb)
246{ 251{
247 int i; 252 int i;
248 int old_bars = viewportmanager_get_statusbar(); 253 int old_bars = early_usb ? 0 : viewportmanager_get_statusbar();
249 struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS]; 254 struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS];
250#if defined HAVE_TOUCHSCREEN 255#if defined HAVE_TOUCHSCREEN
251 enum touchscreen_mode old_mode = touchscreen_get_mode(); 256 enum touchscreen_mode old_mode = touchscreen_get_mode();
@@ -270,7 +275,7 @@ void gui_usb_screen_run(void)
270 275
271 screen->set_viewport(NULL); 276 screen->set_viewport(NULL);
272#ifdef HAVE_LCD_BITMAP 277#ifdef HAVE_LCD_BITMAP
273 usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i]); 278 usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i], early_usb);
274#endif 279#endif
275 } 280 }
276 281
@@ -318,9 +323,11 @@ void gui_usb_screen_run(void)
318 { 323 {
319 screens[i].backlight_on(); 324 screens[i].backlight_on();
320 } 325 }
321 viewportmanager_set_statusbar(old_bars); 326 if (!early_usb)
322 send_event(GUI_EVENT_REFRESH, NULL); 327 {
323 328 viewportmanager_set_statusbar(old_bars);
329 send_event(GUI_EVENT_REFRESH, NULL);
330 }
324} 331}
325#endif /* !defined(USB_NONE) */ 332#endif /* !defined(USB_NONE) */
326 333