diff --git a/app/menu.c b/app/menu.c index 76e3426..e005feb 100644 --- a/app/menu.c +++ b/app/menu.c @@ -759,6 +759,7 @@ static void MENU_ClampSelection(int8_t Direction) { int32_t Min; int32_t Max; + if (!MENU_GetLimits(gMenuCursor, &Min, &Max)) { int32_t Selection = gSubMenuSelection; @@ -1112,19 +1113,26 @@ static void MENU_Key_0_to_9(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) { switch (gInputBoxIndex) { - case 1: - Value = gInputBox[0]; + case 2: + gInputBoxIndex = 0; + + Value = (gInputBox[0] * 10) + gInputBox[1]; + if (Value > 0 && Value <= gMenuListCount) { gMenuCursor = Value - 1; gFlagRefreshSetting = true; return; } - break; - case 2: - gInputBoxIndex = 0; - Value = (gInputBox[0] * 10) + gInputBox[1]; + if (Value <= gMenuListCount) + break; + + gInputBox[0] = gInputBox[1]; + gInputBoxIndex = 1; + + case 1: + Value = gInputBox[0]; if (Value > 0 && Value <= gMenuListCount) { gMenuCursor = Value - 1; diff --git a/firmware.bin b/firmware.bin index 5c1e415..76dc641 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index 5a694f2..eeda92c 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ