From 398bf9044f809be97df24e442a6efaa13729c878 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Mon, 23 Oct 2017 23:50:50 -0400 Subject: mq_tree_insert_*(): Fix position updating tree traversal Just use mq_tree_foreach_from() now. --- (limited to 'src/tree.c') diff --git a/src/tree.c b/src/tree.c index 472e0ef..2962954 100644 --- a/src/tree.c +++ b/src/tree.c @@ -97,18 +97,24 @@ update_sizes(MqTree *node, gint step) } } +static gboolean +update_position(MqTree *node, gpointer user_data) +{ + gint *step; + + step = (gint *) user_data; + + node->position += *step; + + return MQ_TREE_CONTINUE; +} + static void update_positions(MqTree *node, gint step) { - for (; node; node = node->next) { - node->position += step; - if (node->first_child) { - update_positions(node->first_child, step); - } - if (node->parent && node->parent->next) { - update_positions(node->parent->next, step); - } - } + print_head("Updating positions", node); + + mq_tree_foreach_from(node, update_position, &step); } MqTree * -- cgit v0.9.1