diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-13 20:35:44 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-13 20:35:44 +0000 |
| commit | 7fddf2abc2b76e511be8fc14e22c1f310efe00ef (patch) | |
| tree | ce6ca7b9cd7ad6779126277a5983f82a99e56279 /openbox/focus.c | |
| parent | 1e5fb0d401e66e8e45340d40e0edd3894505d24a (diff) | |
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?
Diffstat (limited to 'openbox/focus.c')
| -rw-r--r-- | openbox/focus.c | 22 |
1 files changed, 9 insertions, 13 deletions
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; |
