diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-05-31 23:47:21 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-05-31 23:47:21 -0400 |
commit | cca587b21f8976339dbb51491fbba33353255262 (patch) | |
tree | 98cd138ccdd087e0044f4cd0eded13c4548f6cd6 | |
parent | Merge pull request #2079 from RedSoxFan/fix-2078 (diff) | |
download | sway-cca587b21f8976339dbb51491fbba33353255262.tar.gz sway-cca587b21f8976339dbb51491fbba33353255262.tar.zst sway-cca587b21f8976339dbb51491fbba33353255262.zip |
Send reparent events in container_split
-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 b175f567..38c194c1 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, | |||
327 | 327 | ||
328 | wlr_log(L_DEBUG, "Moving out of tab/stack into a split"); | 328 | wlr_log(L_DEBUG, "Moving out of tab/stack into a split"); |
329 | bool is_workspace = current->parent->type == C_WORKSPACE; | 329 | bool is_workspace = current->parent->type == C_WORKSPACE; |
330 | struct sway_container *old_parent = current->parent->parent; | ||
331 | struct sway_container *new_parent = container_split(current->parent, | 330 | struct sway_container *new_parent = container_split(current->parent, |
332 | move_dir == MOVE_LEFT || move_dir == MOVE_RIGHT ? L_HORIZ : L_VERT); | 331 | move_dir == MOVE_LEFT || move_dir == MOVE_RIGHT ? L_HORIZ : L_VERT); |
333 | if (is_workspace) { | 332 | if (is_workspace) { |
@@ -337,7 +336,6 @@ static void move_out_of_tabs_stacks(struct sway_container *container, | |||
337 | container_reap_empty_recursive(new_parent->parent); | 336 | container_reap_empty_recursive(new_parent->parent); |
338 | container_flatten(new_parent->parent); | 337 | container_flatten(new_parent->parent); |
339 | } | 338 | } |
340 | wl_signal_emit(&container->events.reparent, old_parent); | ||
341 | container_create_notify(new_parent); | 339 | container_create_notify(new_parent); |
342 | if (is_workspace) { | 340 | if (is_workspace) { |
343 | arrange_workspace(new_parent->parent); | 341 | arrange_workspace(new_parent->parent); |
@@ -902,6 +900,7 @@ struct sway_container *container_split(struct sway_container *child, | |||
902 | struct sway_container *ws_child = workspace->children->items[0]; | 900 | struct sway_container *ws_child = workspace->children->items[0]; |
903 | container_remove_child(ws_child); | 901 | container_remove_child(ws_child); |
904 | container_add_child(cont, ws_child); | 902 | container_add_child(cont, ws_child); |
903 | wl_signal_emit(&ws_child->events.reparent, workspace); | ||
905 | } | 904 | } |
906 | 905 | ||
907 | container_add_child(workspace, cont); | 906 | container_add_child(workspace, cont); |
@@ -913,9 +912,11 @@ struct sway_container *container_split(struct sway_container *child, | |||
913 | seat_set_focus(seat, cont); | 912 | seat_set_focus(seat, cont); |
914 | } | 913 | } |
915 | } else { | 914 | } else { |
915 | struct sway_container *old_parent = child->parent; | ||
916 | cont->layout = layout; | 916 | cont->layout = layout; |
917 | container_replace_child(child, cont); | 917 | container_replace_child(child, cont); |
918 | container_add_child(cont, child); | 918 | container_add_child(cont, child); |
919 | wl_signal_emit(&child->events.reparent, old_parent); | ||
919 | } | 920 | } |
920 | 921 | ||
921 | container_notify_subtree_changed(cont); | 922 | container_notify_subtree_changed(cont); |