1
0
mirror of https://github.com/mist-devel/mist-firmware.git synced 2026-02-03 06:50:45 +00:00

menu: fix page up/page dn when the last/first option is invisible

This commit is contained in:
Gyorgy Szombathelyi
2023-10-29 01:28:07 +02:00
parent 97c5a47b3e
commit 19095c25eb

16
menu.c
View File

@@ -1301,9 +1301,15 @@ void HandleUI(void)
if (c == KEY_PGDN) {
if (menusub < (osdlines - 1 - (menu_page.stdexit?1:0))) {
unsigned char save_menusub = menusub;
menusub = osdlines - 1 - (menu_page.stdexit?1:0);
while((menumask & (1<<menusub)) == 0) menusub--;
menustate = parentstate;
if (menusub == save_menusub) {
// at the last active line, try to scroll down
scroll_down = osdlines - (menu_page.stdexit?1:0);
} else {
menustate = parentstate;
}
} else {
scroll_down = osdlines - (menu_page.stdexit?1:0);
}
@@ -1330,10 +1336,16 @@ void HandleUI(void)
if (c == KEY_PGUP) {
if (menusub > firstline) {
unsigned char save_menusub = menusub;
menusub = firstline;
while((menumask & (1<<menusub)) == 0 && menusub<osdlines) menusub++;
if(menusub == osdlines) menusub = firstline;
menustate = parentstate;
if (menusub == save_menusub) {
// at the first active line, try to scroll up
scroll_up = osdlines - (menu_page.stdexit?1:0);
} else {
menustate = parentstate;
}
} else {
scroll_up = osdlines - firstline - (menu_page.stdexit?1:0);
}