Fix creating of sibling floating/children

If we want to add a sibling of different type than current
container it failed. Because we add it to the wrong list
master
Nicolas Cornu 8 years ago
parent 7d823fbcae
commit 382d47e238

@ -99,12 +99,21 @@ void add_floating(swayc_t *ws, swayc_t *child) {
swayc_t *add_sibling(swayc_t *fixed, swayc_t *active) { swayc_t *add_sibling(swayc_t *fixed, swayc_t *active) {
swayc_t *parent = fixed->parent; swayc_t *parent = fixed->parent;
int i = index_child(fixed);
if (fixed->is_floating) { if (fixed->is_floating) {
if (active->is_floating) {
int i = index_child(fixed);
list_insert(parent->floating, i + 1, active); list_insert(parent->floating, i + 1, active);
} else { } else {
list_add(parent->children, active);
}
} else {
if (active->is_floating) {
list_add(parent->floating, active);
} else {
int i = index_child(fixed);
list_insert(parent->children, i + 1, active); list_insert(parent->children, i + 1, active);
} }
}
active->parent = parent; active->parent = parent;
// focus new child // focus new child
parent->focused = active; parent->focused = active;

Loading…
Cancel
Save