rosalina: fix handling of more than 1 hidden option in a row

Reported by @cooolgamer
This commit is contained in:
TuxSH 2024-09-22 01:20:53 +02:00
parent 946eb94f02
commit 2ae3c4d4ce

View File

@ -576,17 +576,12 @@ void menuShow(Menu *root)
else else
break; break;
} }
else if(pressed & KEY_DOWN) else if(pressed & (KEY_DOWN | KEY_UP))
{ {
selectedItem = menuAdvanceCursor(selectedItem, numItems, 1); s32 n = (pressed & KEY_DOWN) != 0 ? 1 : -1;
if (menuItemIsHidden(&currentMenu->items[selectedItem])) do {
selectedItem = menuAdvanceCursor(selectedItem, numItems, 1); selectedItem = menuAdvanceCursor(selectedItem, numItems, n);
} } while (menuItemIsHidden(&currentMenu->items[selectedItem])); // assume at least one item is visible
else if(pressed & KEY_UP)
{
selectedItem = menuAdvanceCursor(selectedItem, numItems, -1);
if (menuItemIsHidden(&currentMenu->items[selectedItem]))
selectedItem = menuAdvanceCursor(selectedItem, numItems, -1);
} }
Draw_Lock(); Draw_Lock();