struct wl_list link;
};
-static void _e_view_layout_disown(E_View *child);
-static void _view_layout_handle_destroy(E_View_Tree *tree);
-
-E_View_Tree_Impl view_layout_tree_impl = {
- .destroy = _view_layout_handle_destroy,
-};
-
-static E_View_Layout *
-_view_layout_from_tree(E_View_Tree *tree)
-{
- E_View_Layout *layout;
- assert(tree->impl == &view_layout_tree_impl);
- return wl_container_of(tree, layout, tree);
-}
-
-static void
-_view_layout_handle_destroy(E_View_Tree *tree)
-{
- E_View_Layout *layout = _view_layout_from_tree(tree);
- E_View_Layout_Item *li, *li_tmp;
-
- if (!wl_list_empty(&layout->items))
- {
- wl_list_for_each_safe(li, li_tmp, &layout->items, link)
- {
- wl_list_remove(&li->link);
- _e_view_layout_disown(li->view);
- }
- }
-
- free(layout);
-}
-
static void
_e_view_layout_move_resize_item(E_View_Layout_Item *li)
{
wl_list_init(&layout->items);
- e_view_tree_init(&layout->tree, &view_layout_tree_impl, parent);
+ e_view_tree_init(&layout->tree, NULL, parent);
// e_view_reorderable_set(&layout->tree.view, false);
layout->vw = 1;
layout->clip = e_view_rect_create(&layout->tree, 200002, 200002, color);
e_view_position_set(e_view_rect_view_get(layout->clip), -100001, -100001);
-// evas_object_intercept_layer_set_callback_add(obj, _e_layout_intercept_layer_set, sd);
-
return layout;
}
-E_API void e_view_layout_destroy(E_View_Layout *layout)
+E_API void
+e_view_layout_destroy(E_View_Layout *layout)
{
+ E_View_Layout_Item *li, *li_tmp;
+ E_View *view;
+
if (!layout) return;
- e_view_destroy(e_view_tree_view_get(&layout->tree));
+ if (!wl_list_empty(&layout->items))
+ {
+ wl_list_for_each_safe(li, li_tmp, &layout->items, link)
+ {
+ wl_list_remove(&li->link);
+ _e_view_layout_disown(li->view);
+ }
+ }
+
+ e_view_destroy(e_view_rect_view_get(layout->clip));
+ view = e_view_tree_view_get(&layout->tree);
+ wl_list_remove(&view->link);
+
+ free(layout);
}
E_API void
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_layer_set(_, _))
+ .Times(2);
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
.Times(3);
.WillOnce(Return(obj));
EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
- .Times(2);;
+ .Times(2);
EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_layer_set(_, _))
+ .Times(2);
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
.Times(3);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_layer_set(_, _))
+ .Times(2);
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
.Times(3);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_layer_set(_, _))
+ .Times(2);
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
.Times(3);