diff options
Diffstat (limited to 'sway/desktop/transaction.c')
-rw-r--r-- | sway/desktop/transaction.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index 8688fa13..d77a2afd 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c | |||
@@ -95,8 +95,9 @@ static void copy_pending_state(struct sway_container *container, | |||
95 | state->using_csd = view->using_csd; | 95 | state->using_csd = view->using_csd; |
96 | } else if (container->type == C_WORKSPACE) { | 96 | } else if (container->type == C_WORKSPACE) { |
97 | state->ws_fullscreen = container->sway_workspace->fullscreen; | 97 | state->ws_fullscreen = container->sway_workspace->fullscreen; |
98 | state->ws_floating = container->sway_workspace->floating; | 98 | state->ws_floating = create_list(); |
99 | state->children = create_list(); | 99 | state->children = create_list(); |
100 | list_cat(state->ws_floating, container->sway_workspace->floating); | ||
100 | list_cat(state->children, container->children); | 101 | list_cat(state->children, container->children); |
101 | } else { | 102 | } else { |
102 | state->children = create_list(); | 103 | state->children = create_list(); |
@@ -168,6 +169,7 @@ static void transaction_apply(struct sway_transaction *transaction) { | |||
168 | // Any child containers which are being deleted will be cleaned up in | 169 | // Any child containers which are being deleted will be cleaned up in |
169 | // transaction_destroy(). | 170 | // transaction_destroy(). |
170 | list_free(container->current.children); | 171 | list_free(container->current.children); |
172 | list_free(container->current.ws_floating); | ||
171 | 173 | ||
172 | memcpy(&container->current, &instruction->state, | 174 | memcpy(&container->current, &instruction->state, |
173 | sizeof(struct sway_container_state)); | 175 | sizeof(struct sway_container_state)); |