all repos — openbox @ 49b848a2bbb4c9c72888da94cd069e3562f9640b

openbox fork - make it a bit more like ryudo

smarter picking valid focus cycle targets
Dana Jansens danakj@orodu.net
commit

49b848a2bbb4c9c72888da94cd069e3562f9640b

parent

d5a1b968028839924a7d8f67833ce35bf58cb0f5

1 files changed, 5 insertions(+), 6 deletions(-)

jump to
M openbox/focus.copenbox/focus.c

@@ -179,10 +179,6 @@ at all for them.

*/ focus_set_client(NULL); - if (!config_focus_last && config_focus_follow) - if (focus_under_pointer()) - return; - if (type == OB_FOCUS_FALLBACK_UNFOCUSING && old) { /* try for transient relations */ if (old->transient_for) {

@@ -200,6 +196,10 @@ if (focus_fallback_transient(old->transient_for, old))

return; } } + + if (!config_focus_last && config_focus_follow) + if (focus_under_pointer()) + return; #if 0 /* try for group relations */

@@ -276,7 +276,7 @@ /* we don't use client_can_focus here, because that doesn't let you

focus an iconic window, but we want to be able to, so we just check if the focus flags on the window allow it, and its on the current desktop */ - return (ft->transients == NULL && client_normal(ft) && + return (ft == client_focus_target(ft) && client_normal(ft) && ((ft->can_focus || ft->focus_notify) && !ft->skip_taskbar && (ft->desktop == screen_desktop || ft->desktop == DESKTOP_ALL)));

@@ -324,7 +324,6 @@ } else {

it = it->prev; if (it == NULL) it = g_list_last(list); } - /*ft = client_focus_target(it->data);*/ ft = it->data; if (valid_focus_target(ft)) { if (ft != focus_cycle_target) { /* prevents flicker */