fix: Update GV value in header when precision changes (#3544)

This commit is contained in:
philmoz
2023-05-05 19:25:30 +10:00
committed by GitHub
parent 6aa1fc90c4
commit 07e2e06baf
+4 -2
View File
@@ -280,6 +280,7 @@ class GVarEditWindow : public Page
protected:
uint8_t index;
gvar_t lastGVar = 0;
uint8_t lastPrec = 0;
uint8_t lastFlightMode = 255; // Force initial setting of header title
NumberEdit* min = nullptr;
NumberEdit* max = nullptr;
@@ -297,11 +298,13 @@ class GVarEditWindow : public Page
Page::checkEvents();
if (gVarInHeader &&
((lastFlightMode != getFlightMode()) ||
(lastGVar != g_model.flightModeData[getFlightMode()].gvars[index]))) {
(lastGVar != g_model.flightModeData[getFlightMode()].gvars[index]) ||
(lastPrec != g_model.gvars[index].prec))) {
char label[32];
lastFlightMode = getFlightMode();
FlightModeData* fmData = &g_model.flightModeData[lastFlightMode];
lastGVar = fmData->gvars[index];
lastPrec = g_model.gvars[index].prec;
sprintf(label, "%s%d=", STR_GV, index + 1);
if (lastGVar > GVAR_MAX) {
uint8_t fm = lastGVar - GVAR_MAX - 1;
@@ -383,7 +386,6 @@ class GVarEditWindow : public Page
values[fm]->setSuffix(suffix);
values[fm]->invalidate();
}
if (gVarInHeader) gVarInHeader->invalidate();
}
void buildBody(FormWindow* window)