From: Michael Stapelberg Date: Thu, 16 Aug 2012 23:53:45 +0000 (+0200) Subject: Bugfix: don’t change tabbed/stacked cons to splitv/splith layout (Thanks Merovius) X-Git-Tag: 4.3~70 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5257a1268f3b0f0f6ca06f9638b362f311ce3fcb;p=i3%2Fi3 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 --- diff --git a/src/randr.c b/src/randr.c index 6971ba97..8b6ba1d9 100644 --- a/src/randr.c +++ b/src/randr.c @@ -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; DLOG("Setting workspace [%d,%s]'s layout to %d.\n", workspace->num, workspace->name, workspace->layout); 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); } }