Enlightenment CVS committal Author : dj2 Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/lib Modified Files: ewl_tree2.c Log Message: - these lists are needed for the tree to work correctly. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree2.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -3 -r1.79 -r1.80 --- ewl_tree2.c 9 Jul 2007 19:38:50 -0000 1.79 +++ ewl_tree2.c 19 Jul 2007 15:52:01 -0000 1.80 @@ -1036,6 +1036,7 @@ ewl_tree2_node_expand(Ewl_Tree2_Node *node) { Ewl_Widget *child; + Ecore_List *tmp; Ewl_Model *model; void *data; @@ -1051,13 +1052,22 @@ */ ewl_widget_configure(node->tree); + /* This is needed as in the child_show cb we will case a list walk. + * We need this till the lists get iterators */ + tmp = ecore_list_new(); + ecore_dlist_goto_first(EWL_CONTAINER(node)->children); while ((child = ecore_dlist_next(EWL_CONTAINER(node)->children))) { if ((child != node->handle) && (child != node->row)) - ewl_widget_show(child); + ecore_list_append(tmp, child); } + while ((child = ecore_list_remove_first(tmp))) + ewl_widget_show(child); + + IF_FREE_LIST(tmp); + model = ewl_mvc_model_get(EWL_MVC(node)); data = ewl_mvc_data_get(EWL_MVC(node)); if (model->expansion.data && !node->built_children) @@ -1097,6 +1107,7 @@ ewl_tree2_node_collapse(Ewl_Tree2_Node *node) { Ewl_Widget *child; + Ecore_List *tmp; DENTER_FUNCTION(DLEVEL_STABLE); @@ -1110,12 +1121,21 @@ */ ewl_widget_configure(node->tree); + /* This is needed becase in our child_hide callback we will cause a + * list iteration. Until we get iterators we need this */ + tmp = ecore_list_new(); + ecore_dlist_goto_first(EWL_CONTAINER(node)->children); while ((child = ecore_dlist_next(EWL_CONTAINER(node)->children))) { if ((child != node->handle) && (child != node->row)) - ewl_widget_hide(child); + ecore_list_append(tmp, child); } + + while ((child = ecore_list_remove_first(tmp))) + ewl_widget_hide(child); + + IF_FREE_LIST(tmp); ewl_tree2_row_collapse(EWL_TREE2(node->tree), ewl_mvc_data_get(EWL_MVC(node)), node->row_num); ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs