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.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c
index fb59f820b6..8a3510ea15 100644
--- a/apps/gui/usb_screen.c
+++ b/apps/gui/usb_screen.c
@@ -243,7 +243,13 @@ static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar)
243 243
244void gui_usb_screen_run(bool early_usb) 244void gui_usb_screen_run(bool early_usb)
245{ 245{
246 (void) early_usb; 246#ifdef SIMULATOR /* the sim allows toggling USB fast enough to overflow viewportmanagers stack */
247 static bool in_usb_screen = false;
248 if (in_usb_screen)
249 return;
250 in_usb_screen = true;
251#endif
252
247 struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS]; 253 struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS];
248#if defined HAVE_TOUCHSCREEN 254#if defined HAVE_TOUCHSCREEN
249 enum touchscreen_mode old_mode = touchscreen_get_mode(); 255 enum touchscreen_mode old_mode = touchscreen_get_mode();
@@ -334,4 +340,7 @@ void gui_usb_screen_run(bool early_usb)
334 } 340 }
335 341
336 pop_current_activity(); 342 pop_current_activity();
343#ifdef SIMULATOR
344 in_usb_screen = false;
345#endif
337} 346}