From 90529532a7f7e10fa320d202b6692185ee3a08df Mon Sep 17 00:00:00 2001 From: siikamiika Date: Sat, 9 Oct 2021 16:21:18 +0300 Subject: [PATCH] container: restore next to sibling after floating Follow-up to a558866f42de74f7dc0500c3fe29bb506cf03cf6 If seat_get_focus_inactive_tiling returns a non-view container, restore the floated container next to the previous sibling inside of the container instead of appending to the end. This matches i3 behavior. --- sway/tree/container.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sway/tree/container.c b/sway/tree/container.c index 6a01eab38..46ef4723c 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -861,7 +861,13 @@ void container_set_floating(struct sway_container *container, bool enable) { if (reference->view) { container_add_sibling(reference, container, 1); } else { - container_add_child(reference, container); + struct sway_container *sibling = + seat_get_focus_inactive_view(seat, &reference->node); + if (sibling) { + container_add_sibling(sibling, container, 1); + } else { + container_add_child(reference, container); + } } container->pending.width = reference->pending.width; container->pending.height = reference->pending.height;