_con_move_to_con: Move upwards only on CT_FLOATING_CON

If target is inside a floating container but not its direct child, the
move can be completed as is.

Fixes #3402.
This commit is contained in:
Orestis Floros
2018-09-14 16:09:45 +03:00
parent ede954128a
commit d407393d0d
2 changed files with 27 additions and 6 deletions

View File

@ -1171,13 +1171,13 @@ static bool _con_move_to_con(Con *con, Con *target, bool behind_focused, bool fi
target = target->parent;
}
/* 3: if the target container is floating, we get the workspace instead.
* Only tiling windows need to get inserted next to the current container.
* */
Con *floatingcon = con_inside_floating(target);
if (floatingcon != NULL) {
/* 3: if the original target is the direct child of a floating container, we
* can't move con next to it - floating containers have only one child - so
* we get the workspace instead. */
if (target->type == CT_FLOATING_CON) {
DLOG("floatingcon, going up even further\n");
target = floatingcon->parent;
orig_target = target;
target = target->parent;
}
if (con->type == CT_FLOATING_CON) {