]> Dogcows Code - chaz/openbox/blobdiff - openbox/focus_cycle.c
better more obvious code
[chaz/openbox] / openbox / focus_cycle.c
index 46f5f058daff1bf5424973dec9693807ff5708e2..7549fbe51e2dce5905a976ff1dadcf360d9f9dae 100644 (file)
@@ -149,8 +149,17 @@ 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) */
-    ok = ok && ft == client_focus_target(ft);
+    /* 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 || !focus_cycle_target_valid(cft,
+                                                           iconic_windows,
+                                                           all_desktops,
+                                                           dock_windows,
+                                                           desktop_windows));
+    }
 
     return ok;
 }
This page took 0.021546 seconds and 4 git commands to generate.