summaryrefslogtreecommitdiff
path: root/apps/gui/usb_screen.c
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2024-07-21 11:53:25 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2024-07-22 10:27:24 -0400
commit7720b0c4e4383670a64595bb9d199c5e2dbe6651 (patch)
tree208fafcc4bf94b5d387b6517fa244ccf56dc8a74 /apps/gui/usb_screen.c
parent2bb9323de8e4edc0a04ccf7ccf61e3026b5ef847 (diff)
downloadrockbox-7720b0c4e4383670a64595bb9d199c5e2dbe6651.tar.gz
rockbox-7720b0c4e4383670a64595bb9d199c5e2dbe6651.zip
[Bugfix] crashes on usb unplug, extra text on USB screen, viewportmgr ovfl on sim
make _lists_uiviewport_update_callback a oneshot and reset it each call of list_do_action_timeout() block multiple runs of gui_usb_screen_run() in the sim Change-Id: I0c0429c42622c82bcf481ad13efdc47e9055a1bb
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}