window: clear lvobj before deleting it
This commit is contained in:
committed by
Peter Feerick
parent
9767b4baf1
commit
7ab53f757f
+10
-3
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user