From: Michael Stapelberg Date: Sat, 17 Jul 2010 13:08:22 +0000 (+0200) Subject: Bugfix: Even when not going one level up, we need to travel down the whole focus... X-Git-Tag: tree-pr1~148 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=189635a5dcc03be1e12c8b1d0d35e06e9e172bde;p=i3%2Fi3 Bugfix: Even when not going one level up, we need to travel down the whole focus stack --- diff --git a/src/con.c b/src/con.c index 4eeaf13c..4b0b2307 100644 --- a/src/con.c +++ b/src/con.c @@ -418,14 +418,15 @@ Con *con_next_focused(Con *con) { /* try to focus the next container on the same level as this one */ next = TAILQ_NEXT(con, focused); - /* if none, go up to its parent and go down the focus stack as far as - * possible, excluding the current container */ - if (next == TAILQ_END(&(parent->nodes_head))) { + /* if that was not possible, go up to its parent */ + if (next == TAILQ_END(&(parent->nodes_head))) next = con->parent; - while (!TAILQ_EMPTY(&(next->focus_head)) && - TAILQ_FIRST(&(next->focus_head)) != con) - next = TAILQ_FIRST(&(next->focus_head)); - } + + /* now go down the focus stack as far as + * possible, excluding the current container */ + while (!TAILQ_EMPTY(&(next->focus_head)) && + TAILQ_FIRST(&(next->focus_head)) != con) + next = TAILQ_FIRST(&(next->focus_head)); return next; }