Make workspace_layout handle all cons at workspace level, not only the first one (+test)
This makes opening new windows on workspace level and moving windows to the right/left more like in the old i3.
This commit is contained in:
@ -219,8 +219,8 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
|
||||
nc = con_descend_focused(workspace_get(assignment->dest.workspace, NULL));
|
||||
DLOG("focused on ws %s: %p / %s\n", assignment->dest.workspace, nc, nc->name);
|
||||
if (nc->type == CT_WORKSPACE)
|
||||
nc = tree_open_con(nc);
|
||||
else nc = tree_open_con(nc->parent);
|
||||
nc = tree_open_con(nc, cwindow);
|
||||
else nc = tree_open_con(nc->parent, cwindow);
|
||||
}
|
||||
/* TODO: handle assignments with type == A_TO_OUTPUT */
|
||||
} else {
|
||||
@ -229,13 +229,13 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
|
||||
LOG("using current container, focused = %p, focused->name = %s\n",
|
||||
focused, focused->name);
|
||||
nc = focused;
|
||||
} else nc = tree_open_con(NULL);
|
||||
} else nc = tree_open_con(NULL, cwindow);
|
||||
}
|
||||
} else {
|
||||
/* M_BELOW inserts the new window as a child of the one which was
|
||||
* matched (e.g. dock areas) */
|
||||
if (match != NULL && match->insert_where == M_BELOW) {
|
||||
nc = tree_open_con(nc);
|
||||
nc = tree_open_con(nc, cwindow);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user