Merge pull request #1618 from Deiz/fix-1603

Allow single-child non-default layout cons to be moved between outputs
This commit is contained in:
Michael Stapelberg
2015-04-01 09:08:22 +02:00
2 changed files with 107 additions and 0 deletions

View File

@ -249,6 +249,14 @@ void tree_move(Con *con, int direction) {
? AFTER
: BEFORE);
insert_con_into(con, target, position);
} else if (con->parent->parent->type == CT_WORKSPACE &&
con->parent->layout != L_DEFAULT &&
con_num_children(con->parent) == 1) {
/* Con is the lone child of a non-default layout container at the edge
* of the workspace. Treat it as though the workspace is its parent
* and move it to the next output. */
DLOG("Grandparent is workspace\n");
move_to_output_directed(con, direction);
} else {
DLOG("Moving into container above\n");
position = (direction == D_UP || direction == D_LEFT ? BEFORE : AFTER);