diff options
Diffstat (limited to 'apps/gui/usb_screen.c')
-rw-r--r-- | apps/gui/usb_screen.c | 11 |
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 | ||
244 | void gui_usb_screen_run(bool early_usb) | 244 | void 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 | } |