X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus_cycle.c;h=7549fbe51e2dce5905a976ff1dadcf360d9f9dae;hb=461ae2a83349b7574df5e65e8238704f414891d1;hp=74cabac6fc65006b6eade9422ebcc5600baa4b30;hpb=e48dce6707b9273eaa46957624932288317a30da;p=chaz%2Fopenbox diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c index 74cabac6..7549fbe5 100644 --- a/openbox/focus_cycle.c +++ b/openbox/focus_cycle.c @@ -149,11 +149,16 @@ gboolean focus_cycle_target_valid(ObClient *ft, ft->modal || !ft->skip_taskbar); - /* it's not going to just send fous off somewhere else (modal window) */ + /* it's not going to just send focus off somewhere else (modal window), + unless that modal window is not one of our valid targets, then let + you choose this window and bring the modal one here */ { ObClient *cft = client_focus_target(ft); - ok = ok && (ft == cft || (cft->desktop != DESKTOP_ALL && - cft->desktop != ft->desktop)); + ok = ok && (ft == cft || !focus_cycle_target_valid(cft, + iconic_windows, + all_desktops, + dock_windows, + desktop_windows)); } return ok;