From 189635a5dcc03be1e12c8b1d0d35e06e9e172bde Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sat, 17 Jul 2010 15:08:22 +0200 Subject: [PATCH] Bugfix: Even when not going one level up, we need to travel down the whole focus stack --- src/con.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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; } -- 2.39.5