]> Dogcows Code - chaz/tint2/blobdiff - src/util/window.c
*add* more task states (normal, active, iconified, urgent), with each an own backgrou...
[chaz/tint2] / src / util / window.c
index 1aa08774e28f9f93369f5a49b3bdd87f53d4c0f7..caa293438e8cab0ab11a704048beaad5745b8dab 100644 (file)
@@ -146,7 +146,21 @@ int window_get_monitor (Window win)
 
 int window_is_iconified (Window win)
 {
-       return (IconicState == get_property32(win, server.atom.WM_STATE, server.atom.WM_STATE));
+       if (IconicState == get_property32(win, server.atom.WM_STATE, server.atom.WM_STATE)) {
+               // openbox sets on shaded windows the IconicState, however we do not consider these windows iconified
+               Atom *at;
+               int count, i;
+               at = server_get_property (win, server.atom._NET_WM_STATE, XA_ATOM, &count);
+               for (i = 0; i < count; i++) {
+                       if (at[i] == server.atom._NET_WM_STATE_SHADED) {
+                               XFree(at);
+                               return 0;
+                       }
+               }
+               XFree(at);
+               return 1;
+       }
+       return 0;
 }
 
 
This page took 0.024315 seconds and 4 git commands to generate.