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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs