Tiling2: Fixed tree update bugs.

This commit is contained in:
Tom Hacohen 2014-01-13 17:48:17 +00:00
parent aac439698b
commit f64763ab6e
1 changed files with 18 additions and 1 deletions

View File

@ -83,6 +83,12 @@ tiling_window_tree_remove(Window_Tree *root, Window_Tree *item)
free(item);
return NULL;
}
else if (!item->client)
{
ERR("Tried deleting node %p that doesn't have a client.", item);
return root;
}
int children_count = eina_inlist_count(item->parent->children);
@ -97,7 +103,18 @@ tiling_window_tree_remove(Window_Tree *root, Window_Tree *item)
}
item->parent->client = item_keep->client;
item->parent->children = NULL;
item->parent->children = item_keep->children;
item->parent->split_type = item_keep->split_type;
/* Update the children's parent. */
{
Window_Tree *itr;
EINA_INLIST_FOREACH(item->parent->children, itr)
{
itr->parent = item->parent;
}
}
free(item_keep);
}