From: Michael Stapelberg Date: Fri, 1 Apr 2011 18:40:32 +0000 (+0200) Subject: x: recurse x_push_node in focus order. reduces flickering when switching workspaces X-Git-Tag: tree-pr3~86 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b644fb5f26c1768b70c5b49d8cd917a63a2d1d91;p=i3%2Fi3 x: recurse x_push_node in focus order. reduces flickering when switching workspaces --- diff --git a/src/x.c b/src/x.c index 826d2134..8aad722a 100644 --- a/src/x.c +++ b/src/x.c @@ -575,11 +575,10 @@ static void x_push_node(Con *con) { fake_absolute_configure_notify(con); } - /* handle all children and floating windows of this node */ - TAILQ_FOREACH(current, &(con->nodes_head), nodes) - x_push_node(current); - - TAILQ_FOREACH(current, &(con->floating_head), floating_windows) + /* Handle all children and floating windows of this node. We recurse + * in focus order to display the focused client in a stack first when + * switching workspaces (reduces flickering). */ + TAILQ_FOREACH(current, &(con->focus_head), focused) x_push_node(current); if (con->type != CT_ROOT && con->type != CT_OUTPUT)