Merge pull request #532 from Ralim/menu-should-timeout
Menu should timeout
This commit is contained in:
@@ -756,7 +756,6 @@ void startGUITask(void const *argument __unused) {
|
||||
break;
|
||||
case BUTTON_B_SHORT:
|
||||
enterSettingsMenu(); // enter the settings menu
|
||||
saveSettings();
|
||||
buttonLockout = true;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -105,9 +105,8 @@ const menuitem rootSettingsMenu[] {
|
||||
* Exit
|
||||
*/
|
||||
#ifdef MODEL_TS100
|
||||
{ (const char*)SettingsDescriptions[0],
|
||||
{ settings_setInputVRange},
|
||||
{ settings_displayInputVRange}}, /*Voltage input*/
|
||||
{ (const char*) SettingsDescriptions[0], { settings_setInputVRange }, {
|
||||
settings_displayInputVRange } }, /*Voltage input*/
|
||||
#else
|
||||
{ (const char*) SettingsDescriptions[20], { settings_setInputPRange }, {
|
||||
settings_displayInputPRange } }, /*Voltage input*/
|
||||
@@ -731,11 +730,8 @@ void gui_Menu(const menuitem* menu) {
|
||||
/ (systemSettings.descriptionScrollSpeed == 1 ?
|
||||
1 : 2));
|
||||
descriptionOffset %= descriptionWidth; // Roll around at the end
|
||||
|
||||
if (lastOffset != descriptionOffset) {
|
||||
OLED::clearScreen();
|
||||
|
||||
//^ Rolling offset based on time
|
||||
OLED::setCursor((OLED_WIDTH - descriptionOffset), 0);
|
||||
OLED::print(menu[currentScreen].description);
|
||||
lastOffset = descriptionOffset;
|
||||
@@ -807,6 +803,12 @@ void gui_Menu(const menuitem* menu) {
|
||||
osDelay(40);
|
||||
lcdRefresh = false;
|
||||
}
|
||||
if ((xTaskGetTickCount() - lastButtonTime) > (1000 * 30)) {
|
||||
// If user has not pressed any buttons in 30 seconds, exit back a menu layer
|
||||
// This will trickle the user back to the main screen eventually
|
||||
earlyExit = true;
|
||||
descriptionStart = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user