fix(color): Incorrect focus selection in GVAR list (#4378)

This commit is contained in:
philmoz
2023-12-06 10:22:56 +10:00
committed by GitHub
parent cea924a400
commit eb81c5ecbb
2 changed files with 13 additions and 16 deletions
+2 -4
View File
@@ -292,7 +292,7 @@ class FMStyle
lv_obj_set_style_flex_grow(obj, 2, LV_PART_MAIN);
lv_obj_set_style_pad_all(obj, 0, LV_PART_MAIN);
lv_obj_set_height(obj, LV_SIZE_CONTENT);
lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_SPACE_AROUND);
return obj;
@@ -318,7 +318,7 @@ class FMStyle
{
auto obj = lv_obj_create(parent);
lv_obj_add_style(obj, &fmTrimContStyle, LV_PART_MAIN);
lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
return obj;
}
@@ -403,13 +403,11 @@ class FlightModeBtn : public Button
fmID = fmStyle.newId(lvobj);
lv_obj_t* container = fmStyle.newGroup(lvobj);
lv_obj_set_user_data(container, this);
fmName = fmStyle.newName(container);
fmSwitch = fmStyle.newSwitch(container);
lv_obj_t* trims_cont = fmStyle.newTrimCont(container);
lv_obj_set_user_data(trims_cont, this);
for (int i = 0; i < keysGetMaxTrims(); i += 1) {
fmTrimMode[i] = fmStyle.newTrimMode(trims_cont, i);
+11 -12
View File
@@ -106,7 +106,7 @@ class GVarStyle
lv_obj_set_width(obj, GVAR_VAL_W * GVAR_COLS);
lv_obj_set_height(obj, GVAR_H);
lv_obj_set_style_pad_all(obj, 0, LV_PART_MAIN);
lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
return obj;
}
@@ -117,7 +117,7 @@ class GVarStyle
lv_obj_add_style(obj, &fmContStyle, LV_PART_MAIN);
lv_obj_add_style(obj, &fmContStyleChecked, LV_PART_MAIN|LV_STATE_CHECKED);
lv_obj_set_pos(obj, (flightMode%GVAR_COLS)*GVAR_VAL_W, (flightMode/GVAR_COLS)*GVAR_VAL_H);
lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
return obj;
}
@@ -176,12 +176,7 @@ class GVarButton : public Button
lv_obj_t* target = lv_event_get_target(e);
auto line = (GVarButton*)lv_obj_get_user_data(target);
if (line)
line->build();
if (e) {
auto param = lv_event_get_param(e);
lv_event_send(line->getLvObj(), LV_EVENT_DRAW_MAIN, param);
}
line->build(e);
}
protected:
@@ -217,7 +212,7 @@ class GVarButton : public Button
}
}
void build()
void build(lv_event_t* e)
{
if (init) return;
@@ -228,11 +223,10 @@ class GVarButton : public Button
gvarStyle.newName(lvobj, getGVarString(gvarIdx));
if (modelFMEnabled()) {
auto container = gvarStyle.newGroup(lvobj);
lv_obj_t* container = gvarStyle.newGroup(lvobj);
for (int flightMode = 0; flightMode < MAX_FLIGHT_MODES; flightMode++) {
fmCont[flightMode] = gvarStyle.newFMCont(container, flightMode);
lv_obj_set_user_data(fmCont[flightMode], this);
if (flightMode == currentFlightMode) {
lv_obj_add_state(fmCont[flightMode], LV_STATE_CHECKED);
}
@@ -251,11 +245,16 @@ class GVarButton : public Button
updateValueText(0);
}
init = true;
lv_obj_enable_style_refresh(true);
lv_obj_update_layout(lvobj);
init = true;
if (e) {
auto param = lv_event_get_param(e);
lv_event_send(lvobj, LV_EVENT_DRAW_MAIN, param);
}
}
void updateValueText(uint8_t flightMode)