+ 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;
+}
+
+
+int window_is_urgent (Window win)
+{
+ 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_DEMANDS_ATTENTION) {
+ XFree(at);
+ return 1;
+ }
+ }
+ XFree(at);
+ return 0;
+}
+
+
+int window_is_skip_taskbar (Window win)
+{
+ 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_SKIP_TASKBAR) {
+ XFree(at);
+ return 1;
+ }
+ }
+ XFree(at);
+ return 0;