efl_ui_grid: reparent deleted children
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Wed, 24 Apr 2019 17:15:49 +0000 (19:15 +0200)
committerWoochanlee <wc0917.lee@samsung.com>
Tue, 30 Apr 2019 01:03:03 +0000 (10:03 +0900)
if a child is removed from grid, the parent should not be grid anymore.
Additionally, group members should also be removed, or random deletions
of widgets could happen.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8705

src/lib/elementary/efl_ui_grid.c

index 6f7e506..2d2afe0 100644 (file)
@@ -1010,6 +1010,9 @@ _grid_item_unpack_internal(Eo *obj, Efl_Ui_Grid_Data *pd, Efl_Ui_Grid_Item *it)
    efl_event_callback_del(it, EFL_UI_EVENT_ITEM_SELECTED, _grid_item_selected, obj);
    efl_event_callback_del(it, EFL_UI_EVENT_ITEM_UNSELECTED, _grid_item_unselected, obj);
    efl_event_callback_del(it, EFL_EVENT_DEL, _grid_item_deleted, obj);
+
+   efl_canvas_group_member_remove(pd->pan, it);
+   _elm_widget_sub_object_redirect_to_top(obj, it);
 }