diff options
author | emersion <contact@emersion.fr> | 2018-06-01 10:36:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-01 10:36:47 +0100 |
commit | c47d6cb1c47e98a42a6a94bd37c179cabe3af914 (patch) | |
tree | 0536997fb75a2f89bf84ed10652356222f1e53d3 /sway/tree | |
parent | 8963f94545ad93f6e3a2c156dbf866e8f8d89c55 (diff) | |
parent | cca587b21f8976339dbb51491fbba33353255262 (diff) |
Merge pull request #2081 from RedSoxFan/fix-2077
Send reparent events in container_split
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/layout.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sway/tree/layout.c b/sway/tree/layout.c index bc7ee6bb..2f4ae667 100644 --- a/sway/tree/layout.c +++ b/sway/tree/layout.c @@ -327,7 +327,6 @@ static void move_out_of_tabs_stacks(struct sway_container *container, wlr_log(L_DEBUG, "Moving out of tab/stack into a split"); bool is_workspace = current->parent->type == C_WORKSPACE; - struct sway_container *old_parent = current->parent->parent; struct sway_container *new_parent = container_split(current->parent, move_dir == MOVE_LEFT || move_dir == MOVE_RIGHT ? L_HORIZ : L_VERT); if (is_workspace) { @@ -337,7 +336,6 @@ static void move_out_of_tabs_stacks(struct sway_container *container, container_reap_empty_recursive(new_parent->parent); container_flatten(new_parent->parent); } - wl_signal_emit(&container->events.reparent, old_parent); container_create_notify(new_parent); if (is_workspace) { arrange_workspace(new_parent->parent); @@ -903,6 +901,7 @@ struct sway_container *container_split(struct sway_container *child, struct sway_container *ws_child = workspace->children->items[0]; container_remove_child(ws_child); container_add_child(cont, ws_child); + wl_signal_emit(&ws_child->events.reparent, workspace); } container_add_child(workspace, cont); @@ -914,9 +913,11 @@ struct sway_container *container_split(struct sway_container *child, seat_set_focus(seat, cont); } } else { + struct sway_container *old_parent = child->parent; cont->layout = layout; container_replace_child(child, cont); container_add_child(cont, child); + wl_signal_emit(&child->events.reparent, old_parent); } container_notify_subtree_changed(cont); |