From 7fddf2abc2b76e511be8fc14e22c1f310efe00ef Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 13 May 2007 20:35:44 +0000 Subject: some focus fixes. always set the new focus when we fallback or else weird states appear. better handling of focusin's on clients that don't exist? --- openbox/focus.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'openbox/focus.c') diff --git a/openbox/focus.c b/openbox/focus.c index a756a9b5..72588a30 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -280,19 +280,15 @@ ObClient* focus_fallback(gboolean allow_refocus) old = focus_client; new = focus_fallback_target(allow_refocus, focus_client); - /* send focus somewhere if it is moving or if it was NULL before, - in which case it may not even be on the screen */ - if (!old || new != old) { - /* unfocus any focused clients.. they can be focused by Pointer events - and such, and then when we try focus them, we won't get a FocusIn - event at all for them. */ - focus_nothing(); - - if (new) { - client_focus(new); - /* remember that we tried to send focus here */ - focus_tried = new; - } + /* unfocus any focused clients.. they can be focused by Pointer events + and such, and then when we try focus them, we won't get a FocusIn + event at all for them. */ + focus_nothing(); + + if (new) { + client_focus(new); + /* remember that we tried to send focus here */ + focus_tried = new; } return new; -- cgit v1.2.3