all repos — openbox @ 03d1c08dfe8f0c37b269c10ec922d4cb52d130fe

openbox fork - make it a bit more like ryudo

move focus consistantly when changing desktops with different mouse-focus options - while still being not annoying with omnipresent windows
Dana Jansens danakj@orodu.net
commit

03d1c08dfe8f0c37b269c10ec922d4cb52d130fe

parent

b8e78bba16eb0030689e710572d4b5d45432d089

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

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

@@ -543,6 +543,7 @@ ObClient *c;

GList *it; guint old; gulong ignore_start; + gboolean allow_omni; g_assert(num < screen_num_desktops);

@@ -574,10 +575,11 @@ client_show(c);

} } - if (focus_client && ((client_normal(focus_client) && - focus_client->desktop == DESKTOP_ALL) || - focus_client->desktop == screen_desktop)) - dofocus = FALSE; + /* only allow omnipresent windows to get focus on desktop change if + an omnipresent window is already focused (it'll keep focus probably, but + maybe not depending on mouse-focus options) */ + allow_omni = focus_client && (client_normal(focus_client) && + focus_client->desktop == DESKTOP_ALL); /* have to try focus here because when you leave an empty desktop there is no focus out to watch for. also, we have different rules

@@ -587,7 +589,7 @@

do this before hiding the windows so if helper windows are coming with us, they don't get hidden */ - if (dofocus && (c = focus_fallback(TRUE, !config_focus_last, FALSE))) + if (dofocus && (c = focus_fallback(TRUE, !config_focus_last, allow_omni))) { /* only do the flicker reducing stuff ahead of time if we are going to call xsetinputfocus on the window ourselves. otherwise there is