summarylogtreecommitdiffstats
path: root/strict_skip_taskbar.patch
blob: a766d1f284528122794395668fea1c8be532d0b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
diff --git a/openbox/config.c b/openbox/config.c
index dad5d1b..0e0d1f9 100644
--- a/openbox/config.c
+++ b/openbox/config.c
@@ -48,6 +48,7 @@ StrutPartial config_margins;
 gchar   *config_theme;
 gboolean config_theme_keepborder;
 guint    config_theme_window_list_icon_size;
+gboolean config_theme_strict_skip_taskbar;
 
 gchar   *config_title_layout;
 
@@ -719,6 +720,8 @@ static void parse_theme(xmlNodePtr node, gpointer d)
         else if (config_theme_window_list_icon_size > 96)
             config_theme_window_list_icon_size = 96;
     }
+    if ((n = obt_xml_find_node(node, "strictSkipTaskbar")))
+        config_theme_strict_skip_taskbar = obt_xml_node_bool(n);
 
     for (n = obt_xml_find_node(node, "font");
          n;
diff --git a/openbox/config.h b/openbox/config.h
index 96a66cf..4e6e88e 100644
--- a/openbox/config.h
+++ b/openbox/config.h
@@ -152,6 +152,8 @@ extern gchar *config_title_layout;
 extern gboolean config_animate_iconify;
 /*! Size of icons in focus switching dialogs */
 extern guint config_theme_window_list_icon_size;
+/*! not show in tasklist iconified windows with _NET_WM_STATE_SKIP_TASKBAR hint */
+extern gboolean config_theme_strict_skip_taskbar;
 
 /*! The font for the active window's title */
 extern RrFont *config_font_activewindow;
diff --git a/openbox/focus.c b/openbox/focus.c
index a4626bf..257cce6 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -365,7 +365,7 @@ gboolean focus_valid_target(ObClient *ft,
        not be long-lasting windows */
     ok = ok && (!ft->skip_taskbar ||
                 (ft->modal || user_request ||
-                 (ft->iconic && !ft->parents) ||
+                 (!config_theme_strict_skip_taskbar && ft->iconic && !ft->parents) ||
                  ft->demands_attention ||
                  ft->type == OB_CLIENT_TYPE_DIALOG));