From 8aef255d5f69751dfdfbd3bc18e94507d1a004cd Mon Sep 17 00:00:00 2001 From: "S. Christoffer Eliesen" Date: Tue, 24 Nov 2015 20:46:22 +0100 Subject: [PATCH] layout: add_sibling: Handle floating views properly. This should fix #241. --- sway/layout.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sway/layout.c b/sway/layout.c index 741addf1b..a50f541c9 100644 --- a/sway/layout.c +++ b/sway/layout.c @@ -88,12 +88,16 @@ void add_floating(swayc_t *ws, swayc_t *child) { } } -swayc_t *add_sibling(swayc_t *sibling, swayc_t *child) { - swayc_t *parent = sibling->parent; - int i = index_child(sibling); - list_insert(parent->children, i+1, child); - child->parent = parent; - return child->parent; +swayc_t *add_sibling(swayc_t *fixed, swayc_t *active) { + swayc_t *parent = fixed->parent; + int i = index_child(fixed); + if (fixed->is_floating) { + list_insert(parent->floating, i + 1, active); + } else { + list_insert(parent->children, i + 1, active); + } + active->parent = parent; + return active->parent; } swayc_t *replace_child(swayc_t *child, swayc_t *new_child) {