aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/layout.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-05-31 23:47:21 -0400
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-05-31 23:47:21 -0400
commitcca587b21f8976339dbb51491fbba33353255262 (patch)
tree98cd138ccdd087e0044f4cd0eded13c4548f6cd6 /sway/tree/layout.c
parentMerge pull request #2079 from RedSoxFan/fix-2078 (diff)
downloadsway-cca587b21f8976339dbb51491fbba33353255262.tar.gz
sway-cca587b21f8976339dbb51491fbba33353255262.tar.zst
sway-cca587b21f8976339dbb51491fbba33353255262.zip
Send reparent events in container_split
Diffstat (limited to 'sway/tree/layout.c')
-rw-r--r--sway/tree/layout.c5
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);