Bugfix: don’t change tabbed/stacked cons to splitv/splith layout (Thanks Merovius)
To automagically do the right thing when rotating monitors with regards to splith/splitv layout (depending on width/height of the monitor), we change the orientation of existing workspaces and the first child. If that first child happens to be a stacked/tabbed con, we cannot change the layout unconditionally (previously, the orientation was not in the layout, so we never noticed this problem). fixes #768
This commit is contained in:
parent
ba8b5c480d
commit
5257a1268f
|
@ -464,7 +464,8 @@ static void output_change_mode(xcb_connection_t *conn, Output *output) {
|
||||||
workspace->layout = (output->rect.height > output->rect.width) ? L_SPLITV : L_SPLITH;
|
workspace->layout = (output->rect.height > output->rect.width) ? L_SPLITV : L_SPLITH;
|
||||||
DLOG("Setting workspace [%d,%s]'s layout to %d.\n", workspace->num, workspace->name, workspace->layout);
|
DLOG("Setting workspace [%d,%s]'s layout to %d.\n", workspace->num, workspace->name, workspace->layout);
|
||||||
if ((child = TAILQ_FIRST(&(workspace->nodes_head)))) {
|
if ((child = TAILQ_FIRST(&(workspace->nodes_head)))) {
|
||||||
child->layout = workspace->layout;
|
if (child->layout == L_SPLITV || child->layout == L_SPLITH)
|
||||||
|
child->layout = workspace->layout;
|
||||||
DLOG("Setting child [%d,%s]'s layout to %d.\n", child->num, child->name, child->layout);
|
DLOG("Setting child [%d,%s]'s layout to %d.\n", child->num, child->name, child->layout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue