aboutsummaryrefslogtreecommitdiff
path: root/sway/tree/container.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree/container.c')
-rw-r--r--sway/tree/container.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 746dbf1f..7b88cccb 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -38,7 +38,7 @@ static void notify_new_container(struct sway_container *container) {
ipc_event_window(container, "new");
}
-static struct sway_container *container_create(enum sway_container_type type) {
+struct sway_container *container_create(enum sway_container_type type) {
// next id starts at 1 because 0 is assigned to root_container in layout.c
static size_t next_id = 1;
struct sway_container *c = calloc(1, sizeof(struct sway_container));
@@ -66,13 +66,14 @@ struct sway_container *container_destroy(struct sway_container *cont) {
wl_signal_emit(&cont->events.destroy, cont);
struct sway_container *parent = cont->parent;
- if (cont->children) {
+ if (cont->children != NULL) {
// remove children until there are no more, container_destroy calls
// container_remove_child, which removes child from this container
- while (cont->children->length) {
+ while (cont->children->length != 0) {
container_destroy(cont->children->items[0]);
}
list_free(cont->children);
+ cont->children = NULL;
}
if (cont->marks) {
list_foreach(cont->marks, free);