diff --git a/common/menu.c b/common/menu.c index 481a2c7..0142d53 100644 --- a/common/menu.c +++ b/common/menu.c @@ -54,6 +54,22 @@ void launchMenuBackTask() { } +void menuHandleAButton(void) { + menu_s* menu = menuGetCurrent(); + + if (menuIsMsgBoxOpen()) { + menuCloseMsgBox(); + } + else if (menu->nEntries > 0 && (hbmenu_state == HBMENU_DEFAULT || hbmenu_state == HBMENU_THEME_MENU)) + { + int i; + menuEntry_s* me; + for (i = 0, me = menu->firstEntry; i != menu->curEntry; i ++, me = me->next); + launchMenuEntryTask(me); + //workerSchedule(launchMenuEntryTask, me); + } +} + void launchApplyThemeTask(menuEntry_s* arg) { const char* themePath = arg->path; SetThemePathToConfig(themePath); diff --git a/common/menu.h b/common/menu.h index 66a8581..7e6811c 100644 --- a/common/menu.h +++ b/common/menu.h @@ -93,6 +93,7 @@ void launchMenuBackTask(); void launchMenuNetloaderTask(); char *menuGetRootPath(); +void menuHandleAButton(void); #ifdef __cplusplus } diff --git a/nx_main/main.c b/nx_main/main.c index a5da851..351e5b7 100644 --- a/nx_main/main.c +++ b/nx_main/main.c @@ -119,17 +119,7 @@ bool menuUpdate(void) { } else if (down & KEY_A) { - if (menuIsMsgBoxOpen()) { - menuCloseMsgBox(); - } - else if (menu->nEntries > 0) - { - int i; - menuEntry_s* me; - for (i = 0, me = menu->firstEntry; i != menu->curEntry; i ++, me = me->next); - launchMenuEntryTask(me); - //workerSchedule(launchMenuEntryTask, me); - } + menuHandleAButton(); } else if (down & KEY_B) { @@ -142,10 +132,6 @@ bool menuUpdate(void) { { exitflag = 1; } - /*else if (down & KEY_Y) - { - workerSchedule(netloaderTask, NULL); - }*/ else if (menu->nEntries > 0) { int move = 0; diff --git a/pc_main/main.cpp b/pc_main/main.cpp index e029485..90fd5ea 100644 --- a/pc_main/main.cpp +++ b/pc_main/main.cpp @@ -84,17 +84,7 @@ extern "C" bool menuUpdate(void) { } else if (!new_return_state && return_state) { - if (menuIsMsgBoxOpen()) { - menuCloseMsgBox(); - } - else if (menu->nEntries > 0) - { - int i; - menuEntry_s* me; - for (i = 0, me = menu->firstEntry; i != menu->curEntry; i ++, me = me->next); - launchMenuEntryTask(me); - //workerSchedule(launchMenuEntryTask, me); - } + menuHandleAButton(); } else if (menu->nEntries > 0) {