diff --git a/source/arm11/menu/menu.c b/source/arm11/menu/menu.c index ad5c396..15d4e17 100644 --- a/source/arm11/menu/menu.c +++ b/source/arm11/menu/menu.c @@ -353,6 +353,12 @@ // call menu entry function MenuEntry* entry = &(curr_menu->entries[index]); menu_ret = (*(entry->function))(desc_con, menu_con, entry->param); + // wait until HOME released + do + { + GFX_waitForEvent(GFX_EVENT_PDC0, true); + hidScanInput(); + } while (hidGetExtraKeys(0) & KEY_HOME); // force redraw (somewhat hacky) last_menu = NULL; } diff --git a/source/arm11/menu/menu_func.c b/source/arm11/menu/menu_func.c index 922948b..0e523ec 100644 --- a/source/arm11/menu/menu_func.c +++ b/source/arm11/menu/menu_func.c @@ -494,9 +494,6 @@ if(hidGetExtraKeys(0) & KEY_SHELL) sleepmode(); } while ((kHeld == kHeldNew) && (++vBlanks < 100)); - - // check HOME key - if (hidGetExtraKeys(0) & KEY_HOME) return MENU_FAIL; } while (!((kHeld|kHeldNew) & 0xfff)); // repeat checks until actual buttons are held