window: clear lvobj before deleting it

This commit is contained in:
Raphael Coeffic
2022-08-18 12:12:02 +10:00
committed by Peter Feerick
parent 9767b4baf1
commit 7ab53f757f
3 changed files with 13 additions and 4 deletions
+10 -3
View File
@@ -104,13 +104,19 @@ void Keyboard::clearField()
if (field) {
// restore field's group
auto obj = field->getLvObj();
lv_obj_remove_event_cb(obj, field_focus_leave);
lv_group_t* g = (lv_group_t*)lv_obj_get_group(obj);
if (g) _assign_lv_group(g);
if (obj) {
lv_obj_remove_event_cb(obj, field_focus_leave);
}
field->setEditMode(false);
field->changeEnd();
field = nullptr;
if (fieldGroup) {
_assign_lv_group(fieldGroup);
lv_group_set_editing(fieldGroup, false);
fieldGroup = nullptr;
}
}
}
@@ -165,6 +171,7 @@ void Keyboard::setField(FormField* newField)
_assign_lv_group(group);
field = newField;
fieldGroup = (lv_group_t*)lv_obj_get_group(obj);
}
}
}
+1
View File
@@ -40,6 +40,7 @@ class Keyboard : public Window
FormField* field = nullptr;
Window* fieldContainer = nullptr;
lv_group_t* fieldGroup = nullptr;
lv_coord_t scroll_pos = 0;
void setField(FormField* newField);
+2 -1
View File
@@ -328,8 +328,9 @@ void Window::deleteLater(bool detach, bool trash)
deleteChildren();
if (lvobj != nullptr) {
lv_obj_del(lvobj);
auto obj = lvobj;
lvobj = nullptr;
lv_obj_del(obj);
}
}