diff --git a/stm-firmware/reflow-menu.c b/stm-firmware/reflow-menu.c index e058aa0..3b07dca 100644 --- a/stm-firmware/reflow-menu.c +++ b/stm-firmware/reflow-menu.c @@ -109,6 +109,7 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry static void *my_parent; static bool button_ready; static int page = 0; + static int last_page = -1; static uint32_t uptime_secs; uint32_t new_uptime_secs; uint32_t uptime_mins; @@ -121,6 +122,7 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry if (entry_type == MENU_ENTRY_FIRST_ENTER) { uptime_secs = 0ULL; page = 0; + last_page = -1; my_parent = parent; button_ready = false; menu_display_clear(menu); @@ -144,12 +146,18 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry switch (page) { case 0: + if (last_page == 0) + break; + last_page = 0; menu_lcd_output(menu, 0, LCD_SHIMATTA_STRING " Shimatta"); menu_lcd_output(menu, 1, "Oven Controller"); menu_lcd_output(menu, 2, "(c) Mario H\xF5ttel"); menu_lcd_output(menu, 3, "Page 1/5"); break; case 1: + if (last_page == 1) + break; + last_page = 1; menu_lcd_output(menu, 0, "Version Number:"); menu_lcd_outputf(menu, 1, "%.*s", LCD_CHAR_WIDTH, xstr(GIT_VER)); if (strlen(xstr(GIT_VER)) > LCD_CHAR_WIDTH) { @@ -162,12 +170,18 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry #endif break; case 2: + if (last_page == 2) + break; + last_page = 2; menu_lcd_output(menu, 0, "Compile Info"); menu_lcd_output(menu, 1, __DATE__); menu_lcd_output(menu, 2, __TIME__); menu_lcd_output(menu, 3, "Page 3/5"); break; case 3: + if (last_page == 3) + break; + last_page = 3; unique_id_get(&ser1, &ser2, &ser3); menu_lcd_outputf(menu, 0, "Serial: %08X", ser1); @@ -187,6 +201,7 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry break; default: page = 0; + last_page = -1; break; } @@ -206,7 +221,7 @@ static void reflow_menu_root_entry(struct lcd_menu *menu, enum menu_entry_func_e (void)parent; static struct menu_list list; static bool button_valid; - static bool menu_changed = true; + bool menu_changed = false; static const char * const root_entry_names[] = { "About", "Monitoring",