From f465b3c11dbc10b037ea3882a8892d929a25a1de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Tarl=C3=A1=20Cardoso=20Lemos?= Date: Thu, 27 Jan 2011 21:09:48 -0200 Subject: [PATCH] Don't mess with the focus if we're not killing. If we're not killing the mapped window and we're not killing the parent window either in tree_close, then there's no reason to try to change the focus. This fixes focus issues when moving a container around another container (move up, left, bottom, right). --- src/tree.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/tree.c b/src/tree.c index aa79587b..9a2aab96 100644 --- a/src/tree.c +++ b/src/tree.c @@ -177,9 +177,14 @@ void tree_close(Con *con, bool kill_window, bool dont_kill_parent) { } if (was_mapped || con == focused) { - DLOG("focusing %p / %s\n", next, next->name); - /* TODO: check if the container (or one of its children) was focused */ - con_focus(next); + if (kill_window || !dont_kill_parent) { + DLOG("focusing %p / %s\n", next, next->name); + /* TODO: check if the container (or one of its children) was focused */ + con_focus(next); + } + else { + DLOG("not focusing because we're not killing anybody"); + } } else { DLOG("not focusing, was not mapped\n"); }