]> Dogcows Code - chaz/tint2/blobdiff - src/util/window.c
added taskbar_active_background_id to change current desktop background
[chaz/tint2] / src / util / window.c
index 730178d78cc0430ef0a63643777bdaf1cf110618..8ba71f607a2cc01f1c575a0b33e9a3c498086a39 100644 (file)
 
 void set_active (Window win)
 {
-   send_event32 (win, server.atom._NET_ACTIVE_WINDOW, 2, 0);
+   send_event32 (win, server.atom._NET_ACTIVE_WINDOW, 2, CurrentTime, 0);
 }
 
 
 void set_desktop (int desktop)
 {
-   send_event32 (server.root_win, server.atom._NET_CURRENT_DESKTOP, desktop, 0);
+   send_event32 (server.root_win, server.atom._NET_CURRENT_DESKTOP, desktop, 0, 0);
 }
 
 
 void windows_set_desktop (Window win, int desktop)
 {
-   send_event32 (win, server.atom._NET_WM_DESKTOP, desktop, 2);
+   send_event32 (win, server.atom._NET_WM_DESKTOP, desktop, 2, 0);
 }
 
 
 void set_close (Window win)
 {
-   send_event32 (win, server.atom._NET_CLOSE_WINDOW, 0, 2);
+   send_event32 (win, server.atom._NET_CLOSE_WINDOW, 0, 2, 0);
 }
 
 
 void window_toggle_shade (Window win)
 {
-   send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_SHADED);
+   send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_SHADED, 0);
+}
+
+
+void window_maximize_restore (Window win)
+{
+   send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_MAXIMIZED_VERT, 0);
+   send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_MAXIMIZED_HORZ, 0);
 }
 
 
@@ -80,7 +87,7 @@ int window_is_hidden (Window win)
 
    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_PAGER || at[i] == server.atom._NET_WM_STATE_SKIP_TASKBAR) {
+      if (at[i] == server.atom._NET_WM_STATE_SKIP_TASKBAR) {
          XFree(at);
          return 1;
       }
@@ -97,8 +104,9 @@ int window_is_hidden (Window win)
    XFree(at);
 
        for (i=0 ; i < nb_panel ; i++) {
-               if (panel1[i].main_win == win)
+               if (panel1[i].main_win == win) {
                        return 1;
+               }
        }
 
    // specification
@@ -140,6 +148,23 @@ int window_is_iconified (Window win)
 }
 
 
+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 server_get_number_of_desktop ()
 {
    return get_property32(server.root_win, server.atom._NET_NUMBER_OF_DESKTOPS, XA_CARDINAL);
This page took 0.022159 seconds and 4 git commands to generate.