x: recurse x_push_node in focus order. reduces flickering when switching workspaces

This commit is contained in:
Michael Stapelberg 2011-04-01 20:40:32 +02:00
parent 20b1fd4293
commit b644fb5f26
1 changed files with 4 additions and 5 deletions

View File

@ -575,11 +575,10 @@ static void x_push_node(Con *con) {
fake_absolute_configure_notify(con); fake_absolute_configure_notify(con);
} }
/* handle all children and floating windows of this node */ /* Handle all children and floating windows of this node. We recurse
TAILQ_FOREACH(current, &(con->nodes_head), nodes) * in focus order to display the focused client in a stack first when
x_push_node(current); * switching workspaces (reduces flickering). */
TAILQ_FOREACH(current, &(con->focus_head), focused)
TAILQ_FOREACH(current, &(con->floating_head), floating_windows)
x_push_node(current); x_push_node(current);
if (con->type != CT_ROOT && con->type != CT_OUTPUT) if (con->type != CT_ROOT && con->type != CT_OUTPUT)