adjust who shows up in the alt-tab list using SKIP_TASKBAR (Fixes bug #4503)
authorDana Jansens <danakj@orodu.net>
Mon, 18 Jan 2010 21:08:23 +0000 (16:08 -0500)
committerDana Jansens <danakj@orodu.net>
Mon, 8 Feb 2010 18:40:10 +0000 (13:40 -0500)
allow window types != NORMAL to not show up in the alt-tab list
but don't allow DIALOG types to hide from the list
also any window which is DEMANDS_ATTENTION should appear in the list regardless
  of its SKIP_TASKBAR status

openbox/focus.c

index 36d754f..c8a5589 100644 (file)
@@ -345,13 +345,15 @@ gboolean focus_valid_target(ObClient *ft,
                   that can be focused instead */
                !focus_target_has_siblings(ft, iconic_windows, all_desktops))));
 
-    /* it's not set to skip the taskbar (but this only applies to normal typed
-       windows, and is overridden if the window is modal or if the user asked
-       for this window to be focused) */
-    ok = ok && (ft->type != OB_CLIENT_TYPE_NORMAL ||
-                ft->modal ||
-                user_request ||
-                !ft->skip_taskbar);
+    /* it's not set to skip the taskbar (but this is overridden if the
+       window is modal or if the user asked for this window to be focused,
+       or if the window is iconified, and it is not used for windows which are
+       hilited, or dialog windows as these need user interaction and should
+       not be long-lasting windows */
+    ok = ok && (!ft->skip_taskbar ||
+                (ft->modal || ft->iconic || user_request ||
+                 ft->demands_attention ||
+                 ft->type == OB_CLIENT_TYPE_DIALOG));
 
     /* 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