cleanup code of workspace rotation on output changes

This commit is contained in:
Michael Stapelberg 2011-03-17 17:53:56 +01:00
parent 2f992f5c0e
commit eeb5bdd66f
1 changed files with 14 additions and 13 deletions

View File

@ -395,23 +395,24 @@ static void output_change_mode(xcb_connection_t *conn, Output *output) {
assert(output->con != NULL); assert(output->con != NULL);
output->con->rect = output->rect; output->con->rect = output->rect;
Con *current,*workspace,*child; Con *content, *workspace, *child;
/* Point current to the container of the workspaces */ /* Point content to the container of the workspaces */
current = output->con->nodes_head.tqh_first->nodes.tqe_next; content = output_get_content(output->con);
/* If default_orientation is NO_ORIENTATION, we change the orientation of /* If default_orientation is NO_ORIENTATION, we change the orientation of
* the workspaces and their childs depending on output resolution. This is * the workspaces and their childs depending on output resolution. This is
* only done for workspaces with maximum one child. */ * only done for workspaces with maximum one child. */
if (config.default_orientation == NO_ORIENTATION) { if (config.default_orientation == NO_ORIENTATION) {
TAILQ_FOREACH(workspace, &(current->nodes_head), nodes) { TAILQ_FOREACH(workspace, &(content->nodes_head), nodes) {
/* Workspaces with more than one child are left untouched because
* we do not want to change an existing layout. */
if (con_num_children(workspace) > 1)
continue;
/* Check if this workspace has <= 1 childs. */
child = workspace->nodes_head.tqh_first;
if (child != NULL)
if (child->nodes.tqe_next == NULL) {
workspace->orientation = (output->rect.height > output->rect.width) ? VERT : HORIZ; workspace->orientation = (output->rect.height > output->rect.width) ? VERT : HORIZ;
DLOG("Setting workspace [%d,%s]'s orientation to %d.\n", workspace->num, workspace->name, workspace->orientation); DLOG("Setting workspace [%d,%s]'s orientation to %d.\n", workspace->num, workspace->name, workspace->orientation);
if ((child = TAILQ_FIRST(&(workspace->nodes_head)))) {
child->orientation = workspace->orientation; child->orientation = workspace->orientation;
DLOG("Setting child [%d,%s]'s orientation to %d.\n", child->num, child->name, child->orientation); DLOG("Setting child [%d,%s]'s orientation to %d.\n", child->num, child->name, child->orientation);
} }