From 667d6c140b3578a7acff781971d968043f7163cc Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Sat, 24 May 2025 02:57:37 +0200 Subject: [PATCH] plugins: main_menu_config misc addendum 5efb6d7fac handle USB or shutdown events, exit for ACTION_STD_MENU, and eliminate unnecessary list redraws Change-Id: Ieedf75805f3a859d1aeb85ef51253636d8870fb6 --- apps/plugins/main_menu_config.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/plugins/main_menu_config.c b/apps/plugins/main_menu_config.c index c42169ad38..53b4c826d2 100644 --- a/apps/plugins/main_menu_config.c +++ b/apps/plugins/main_menu_config.c @@ -178,6 +178,7 @@ enum plugin_status plugin_start(const void* parameter) bool done = false; bool changed = false; int action, cur_sel; + int ret = PLUGIN_OK; menu_table = rb->root_menu_get_options(&menu_item_count); load_from_cfg(); @@ -188,11 +189,11 @@ enum plugin_status plugin_start(const void* parameter) rb->gui_synclist_set_icon_callback(&list, menu_get_icon); rb->gui_synclist_set_nb_items(&list, menu_item_count); rb->gui_synclist_set_title(&list, rb->str(LANG_MAIN_MENU), Icon_Rockbox); + rb->gui_synclist_draw(&list); rb->gui_synclist_speak_item(&list); while (!done) { - rb->gui_synclist_draw(&list); cur_sel = rb->gui_synclist_get_sel_pos(&list); action = rb->get_action(CONTEXT_LIST, HZ/10); if (rb->gui_synclist_do_button(&list, &action)) @@ -256,9 +257,20 @@ enum plugin_status plugin_start(const void* parameter) break; } case ACTION_STD_CANCEL: + case ACTION_STD_MENU: done = true; break; + default: + if (rb->default_event_handler(action) == SYS_USB_CONNECTED) + { + ret = PLUGIN_USB_CONNECTED; + done = true; + } + continue; } + + if (!done) + rb->gui_synclist_draw(&list); } if (changed) @@ -269,5 +281,5 @@ enum plugin_status plugin_start(const void* parameter) } rb->global_settings->show_icons = show_icons; - return PLUGIN_OK; + return ret; }