diff options
Diffstat (limited to 'sway/desktop/transaction.c')
-rw-r--r-- | sway/desktop/transaction.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index f82e5ef2..c18529fb 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c | |||
@@ -54,7 +54,22 @@ static void transaction_destroy(struct sway_transaction *transaction) { | |||
54 | con->instruction = NULL; | 54 | con->instruction = NULL; |
55 | } | 55 | } |
56 | if (con->destroying && con->ntxnrefs == 0) { | 56 | if (con->destroying && con->ntxnrefs == 0) { |
57 | container_free(con); | 57 | switch (con->type) { |
58 | case C_ROOT: | ||
59 | break; | ||
60 | case C_OUTPUT: | ||
61 | output_destroy(con); | ||
62 | break; | ||
63 | case C_WORKSPACE: | ||
64 | workspace_destroy(con); | ||
65 | break; | ||
66 | case C_CONTAINER: | ||
67 | case C_VIEW: | ||
68 | container_destroy(con); | ||
69 | break; | ||
70 | case C_TYPES: | ||
71 | break; | ||
72 | } | ||
58 | } | 73 | } |
59 | free(instruction); | 74 | free(instruction); |
60 | } | 75 | } |