Kristian Høgsberg 77f9263
--- libwnck-2.18.0/libwnck/xutils.h.appearance	2007-03-28 18:37:42.000000000 -0400
Kristian Høgsberg 77f9263
+++ libwnck-2.18.0/libwnck/xutils.h	2007-03-28 18:38:33.000000000 -0400
Kristian Høgsberg 77f9263
@@ -109,6 +109,16 @@
Kristian Høgsberg 77f9263
 			    int     x,
Kristian Høgsberg 77f9263
 			    int     y);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+void _wnck_change_opacity (Screen  *screen,
Kristian Høgsberg 77f9263
+			   Window  xwindow,
Kristian Høgsberg 77f9263
+			   guint32 opacity);
Kristian Høgsberg 77f9263
+void _wnck_change_saturation (Screen  *screen,
Kristian Høgsberg 77f9263
+			   Window  xwindow,
Kristian Høgsberg 77f9263
+			   guint32 saturation);
Kristian Høgsberg 77f9263
+void _wnck_change_brightness (Screen  *screen,
Kristian Høgsberg 77f9263
+			   Window  xwindow,
Kristian Høgsberg 77f9263
+			   guint32 brightness);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
 char*  _wnck_get_session_id     (Window xwindow);
Kristian Høgsberg 77f9263
 int    _wnck_get_pid            (Window xwindow);
Kristian Høgsberg 77f9263
 char*  _wnck_get_name           (Window xwindow);
Kristian Høgsberg 77f9263
@@ -117,6 +127,12 @@
Kristian Høgsberg 77f9263
                                  char **res_class,
Kristian Høgsberg 77f9263
                                  char **res_name);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+guint32 _wnck_get_opacity (Window xwindow);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint32 _wnck_get_saturation (Window xwindow);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint32 _wnck_get_brightness (Window xwindow);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
 void   _wnck_select_input     (Window xwindow,
Kristian Høgsberg 77f9263
                                int    mask);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
--- libwnck-2.18.0/libwnck/window.c.appearance	2007-03-28 18:37:42.000000000 -0400
Kristian Høgsberg 77f9263
+++ libwnck-2.18.0/libwnck/window.c	2007-03-28 18:38:33.000000000 -0400
Kristian Høgsberg 77f9263
@@ -91,6 +91,10 @@
Kristian Høgsberg 77f9263
   char *res_class;
Kristian Høgsberg 77f9263
   char *res_name;
Kristian Høgsberg 77f9263
   
Kristian Høgsberg 77f9263
+  guint32 opacity;
Kristian Høgsberg 77f9263
+  guint32 saturation;
Kristian Høgsberg 77f9263
+  guint32 brightness;
Kristian Høgsberg 77f9263
+  
Kristian Høgsberg 77f9263
   /* true if transient_for points to root window,
Kristian Høgsberg 77f9263
    * not another app window
Kristian Høgsberg 77f9263
    */
Kristian Høgsberg 77f9263
@@ -134,6 +138,10 @@
Kristian Høgsberg 77f9263
   guint need_update_startup_id : 1;
Kristian Høgsberg 77f9263
   guint need_update_wmclass : 1;
Kristian Høgsberg 77f9263
   guint need_update_wmhints : 1;
Kristian Høgsberg 77f9263
+  
Kristian Høgsberg 77f9263
+  guint need_update_opacity : 1;
Kristian Høgsberg 77f9263
+  guint need_update_saturation : 1;
Kristian Høgsberg 77f9263
+  guint need_update_brightness : 1;
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
   guint need_emit_name_changed : 1;
Kristian Høgsberg 77f9263
   guint need_emit_icon_changed : 1;
Kristian Høgsberg 77f9263
@@ -146,6 +154,9 @@
Kristian Høgsberg 77f9263
   ICON_CHANGED,
Kristian Høgsberg 77f9263
   ACTIONS_CHANGED,
Kristian Høgsberg 77f9263
   GEOMETRY_CHANGED,
Kristian Høgsberg 77f9263
+  OPACITY_CHANGED,
Kristian Høgsberg 77f9263
+  SATURATION_CHANGED,
Kristian Høgsberg 77f9263
+  BRIGHTNESS_CHANGED,
Kristian Høgsberg 77f9263
   LAST_SIGNAL
Kristian Høgsberg 77f9263
 };
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
@@ -174,6 +185,9 @@
Kristian Høgsberg 77f9263
 static void update_transient_for (WnckWindow *window);
Kristian Høgsberg 77f9263
 static void update_startup_id (WnckWindow *window);
Kristian Høgsberg 77f9263
 static void update_wmclass    (WnckWindow *window);
Kristian Høgsberg 77f9263
+static void update_opacity   (WnckWindow *window);
Kristian Høgsberg 77f9263
+static void update_saturation   (WnckWindow *window);
Kristian Høgsberg 77f9263
+static void update_brightness   (WnckWindow *window);
Kristian Høgsberg 77f9263
 static void unqueue_update   (WnckWindow *window);
Kristian Høgsberg 77f9263
 static void queue_update     (WnckWindow *window);
Kristian Høgsberg 77f9263
 static void force_update_now (WnckWindow *window);
Kristian Høgsberg 77f9263
@@ -293,6 +307,33 @@
Kristian Høgsberg 77f9263
                   NULL, NULL,
Kristian Høgsberg 77f9263
                   g_cclosure_marshal_VOID__VOID,
Kristian Høgsberg 77f9263
                   G_TYPE_NONE, 0);  
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  signals[OPACITY_CHANGED] =
Kristian Høgsberg 77f9263
+    g_signal_new ("opacity_changed",
Kristian Høgsberg 77f9263
+                  G_OBJECT_CLASS_TYPE (object_class),
Kristian Høgsberg 77f9263
+                  G_SIGNAL_RUN_LAST,
Kristian Høgsberg 77f9263
+                  G_STRUCT_OFFSET (WnckWindowClass, opacity_changed),
Kristian Høgsberg 77f9263
+                  NULL, NULL,
Kristian Høgsberg 77f9263
+                  g_cclosure_marshal_VOID__VOID,
Kristian Høgsberg 77f9263
+                  G_TYPE_NONE, 0);  
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  signals[SATURATION_CHANGED] =
Kristian Høgsberg 77f9263
+    g_signal_new ("saturation_changed",
Kristian Høgsberg 77f9263
+                  G_OBJECT_CLASS_TYPE (object_class),
Kristian Høgsberg 77f9263
+                  G_SIGNAL_RUN_LAST,
Kristian Høgsberg 77f9263
+                  G_STRUCT_OFFSET (WnckWindowClass, saturation_changed),
Kristian Høgsberg 77f9263
+                  NULL, NULL,
Kristian Høgsberg 77f9263
+                  g_cclosure_marshal_VOID__VOID,
Kristian Høgsberg 77f9263
+                  G_TYPE_NONE, 0);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  signals[BRIGHTNESS_CHANGED] =
Kristian Høgsberg 77f9263
+    g_signal_new ("brightness_changed",
Kristian Høgsberg 77f9263
+                  G_OBJECT_CLASS_TYPE (object_class),
Kristian Høgsberg 77f9263
+                  G_SIGNAL_RUN_LAST,
Kristian Høgsberg 77f9263
+                  G_STRUCT_OFFSET (WnckWindowClass, brightness_changed),
Kristian Høgsberg 77f9263
+                  NULL, NULL,
Kristian Høgsberg 77f9263
+                  g_cclosure_marshal_VOID__VOID,
Kristian Høgsberg 77f9263
+                  G_TYPE_NONE, 0);
Kristian Høgsberg 77f9263
 }
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
 static void
Kristian Høgsberg 77f9263
@@ -421,6 +462,9 @@
Kristian Høgsberg 77f9263
   window->priv->need_update_startup_id = TRUE;
Kristian Høgsberg 77f9263
   window->priv->need_update_wmclass = TRUE;
Kristian Høgsberg 77f9263
   window->priv->need_update_wmhints = TRUE;
Kristian Høgsberg 77f9263
+  window->priv->need_update_opacity = TRUE;
Kristian Høgsberg 77f9263
+  window->priv->need_update_saturation = TRUE;
Kristian Høgsberg 77f9263
+  window->priv->need_update_brightness = TRUE;
Kristian Høgsberg 77f9263
   window->priv->need_emit_name_changed = FALSE;
Kristian Høgsberg 77f9263
   window->priv->need_emit_icon_changed = FALSE;
Kristian Høgsberg 77f9263
   force_update_now (window);
Kristian Høgsberg 77f9263
@@ -1633,6 +1677,77 @@
Kristian Høgsberg 77f9263
                              gravity_and_flags, x, y, width, height);
Kristian Høgsberg 77f9263
 }
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+guint
Kristian Høgsberg 77f9263
+wnck_window_get_opacity (WnckWindow *window)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  guint64 o;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  g_return_val_if_fail (WNCK_IS_WINDOW (window), 0);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  o = ((guint64) window->priv->opacity * 1005) / G_MAXUINT32;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  return o / 10;
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+void
Kristian Høgsberg 77f9263
+wnck_window_set_opacity (WnckWindow *window,
Kristian Høgsberg 77f9263
+			 guint      opacity)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  g_return_if_fail (WNCK_IS_WINDOW (window));
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  _wnck_change_opacity (WNCK_SCREEN_XSCREEN (window->priv->screen),
Kristian Høgsberg 77f9263
+			wnck_window_get_xid (window),
Kristian Høgsberg 77f9263
+			(((guint64) opacity * G_MAXUINT32) / 100));
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint
Kristian Høgsberg 77f9263
+wnck_window_get_saturation (WnckWindow *window)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  guint64 o;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  g_return_val_if_fail (WNCK_IS_WINDOW (window), 0);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  o = ((guint64) window->priv->saturation * 1005) / G_MAXUINT32;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  return o / 10;
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+void
Kristian Høgsberg 77f9263
+wnck_window_set_saturation (WnckWindow *window,
Kristian Høgsberg 77f9263
+			 guint      saturation)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  g_return_if_fail (WNCK_IS_WINDOW (window));
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  _wnck_change_saturation (WNCK_SCREEN_XSCREEN (window->priv->screen),
Kristian Høgsberg 77f9263
+			wnck_window_get_xid (window),
Kristian Høgsberg 77f9263
+			(((guint64) saturation * G_MAXUINT32) / 100));
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint
Kristian Høgsberg 77f9263
+wnck_window_get_brightness (WnckWindow *window)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  guint64 o;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  g_return_val_if_fail (WNCK_IS_WINDOW (window), 0);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  o = ((guint64) window->priv->brightness * 1005) / G_MAXUINT32;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  return o / 10;
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+void
Kristian Høgsberg 77f9263
+wnck_window_set_brightness (WnckWindow *window,
Kristian Høgsberg 77f9263
+			 guint      brightness)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  g_return_if_fail (WNCK_IS_WINDOW (window));
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  _wnck_change_brightness (WNCK_SCREEN_XSCREEN (window->priv->screen),
Kristian Høgsberg 77f9263
+			wnck_window_get_xid (window),
Kristian Høgsberg 77f9263
+			(((guint64) brightness * G_MAXUINT32) / 100));
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
 /**
Kristian Høgsberg 77f9263
  * wnck_window_is_visible_on_workspace:
Kristian Høgsberg 77f9263
  * @window: a #WnckWindow
Kristian Høgsberg 77f9263
@@ -1866,6 +1981,26 @@
Kristian Høgsberg 77f9263
       window->priv->need_update_wmhints = TRUE;
Kristian Høgsberg 77f9263
       queue_update (window);
Kristian Høgsberg 77f9263
     }
Kristian Høgsberg 77f9263
+  else if (xevent->xproperty.atom ==
Kristian Høgsberg 77f9263
+           _wnck_atom_get ("_NET_WM_WINDOW_OPACITY"))
Kristian Høgsberg 77f9263
+    {
Kristian Høgsberg 77f9263
+      window->priv->need_update_opacity = TRUE;
Kristian Høgsberg 77f9263
+      queue_update (window);
Kristian Høgsberg 77f9263
+    }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  else if (xevent->xproperty.atom ==
Kristian Høgsberg 77f9263
+           _wnck_atom_get ("_NET_WM_WINDOW_SATURATION"))
Kristian Høgsberg 77f9263
+    {
Kristian Høgsberg 77f9263
+      window->priv->need_update_saturation = TRUE;
Kristian Høgsberg 77f9263
+      queue_update (window);
Kristian Høgsberg 77f9263
+    }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  else if (xevent->xproperty.atom ==
Kristian Høgsberg 77f9263
+           _wnck_atom_get ("_NET_WM_WINDOW_BRIGHTNESS"))
Kristian Høgsberg 77f9263
+    {
Kristian Høgsberg 77f9263
+      window->priv->need_update_brightness = TRUE;
Kristian Høgsberg 77f9263
+      queue_update (window);
Kristian Høgsberg 77f9263
+    }
Kristian Høgsberg 77f9263
 }
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
 void
Kristian Høgsberg 77f9263
@@ -2386,6 +2521,39 @@
Kristian Høgsberg 77f9263
 }
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
 static void
Kristian Høgsberg 77f9263
+update_opacity (WnckWindow *window)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  if (!window->priv->need_update_opacity)
Kristian Høgsberg 77f9263
+    return;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  window->priv->need_update_opacity = FALSE;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  window->priv->opacity = _wnck_get_opacity (window->priv->xwindow);
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+static void
Kristian Høgsberg 77f9263
+update_saturation (WnckWindow *window)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  if (!window->priv->need_update_saturation)
Kristian Høgsberg 77f9263
+    return;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  window->priv->need_update_saturation = FALSE;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  window->priv->saturation = _wnck_get_saturation (window->priv->xwindow);
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+static void
Kristian Høgsberg 77f9263
+update_brightness (WnckWindow *window)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  if (!window->priv->need_update_brightness)
Kristian Høgsberg 77f9263
+    return;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  window->priv->need_update_brightness = FALSE;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  window->priv->brightness = _wnck_get_brightness (window->priv->xwindow);
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+static void
Kristian Høgsberg 77f9263
 force_update_now (WnckWindow *window)
Kristian Høgsberg 77f9263
 {
Kristian Høgsberg 77f9263
   WnckWindowState old_state;
Kristian Høgsberg 77f9263
@@ -2420,6 +2588,9 @@
Kristian Høgsberg 77f9263
                               */
Kristian Høgsberg 77f9263
   update_workspace (window); /* emits signals */
Kristian Høgsberg 77f9263
   update_actions (window);
Kristian Høgsberg 77f9263
+  update_opacity (window);
Kristian Høgsberg 77f9263
+  update_saturation (window);
Kristian Høgsberg 77f9263
+  update_brightness (window);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
   get_icons (window);
Kristian Høgsberg 77f9263
   
Kristian Høgsberg 77f9263
--- libwnck-2.18.0/libwnck/window.h.appearance	2007-03-28 18:37:42.000000000 -0400
Kristian Høgsberg 77f9263
+++ libwnck-2.18.0/libwnck/window.h	2007-03-28 18:38:33.000000000 -0400
Kristian Høgsberg 77f9263
@@ -149,6 +149,15 @@
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
   /* Changed size/position */
Kristian Høgsberg 77f9263
   void (* geometry_changed)      (WnckWindow       *window);
Kristian Høgsberg 77f9263
+  
Kristian Høgsberg 77f9263
+  /* Changed opacity */
Kristian Høgsberg 77f9263
+  void (* opacity_changed)      (WnckWindow       *window);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  /* Changed saturation */
Kristian Høgsberg 77f9263
+  void (* saturation_changed)      (WnckWindow       *window);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  /* Changed brightness */
Kristian Høgsberg 77f9263
+  void (* brightness_changed)      (WnckWindow       *window);
Kristian Høgsberg 77f9263
 };
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
 GType wnck_window_get_type (void) G_GNUC_CONST;
Kristian Høgsberg 77f9263
@@ -263,6 +272,15 @@
Kristian Høgsberg 77f9263
                                int                       width,
Kristian Høgsberg 77f9263
                                int                       height);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+guint wnck_window_get_opacity (WnckWindow *window);
Kristian Høgsberg 77f9263
+void  wnck_window_set_opacity (WnckWindow *window, guint opacity);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint wnck_window_get_saturation (WnckWindow *window);
Kristian Høgsberg 77f9263
+void  wnck_window_set_saturation (WnckWindow *window, guint saturation);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint wnck_window_get_brightness (WnckWindow *window);
Kristian Høgsberg 77f9263
+void  wnck_window_set_brightness (WnckWindow *window, guint brightness);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
 gboolean wnck_window_is_visible_on_workspace (WnckWindow    *window,
Kristian Høgsberg 77f9263
                                               WnckWorkspace *workspace);
Kristian Høgsberg 77f9263
 gboolean wnck_window_is_on_workspace         (WnckWindow    *window,
Kristian Høgsberg 77f9263
--- libwnck-2.18.0/libwnck/window-action-menu.c.appearance	2007-03-12 14:48:28.000000000 -0400
Kristian Høgsberg 77f9263
+++ libwnck-2.18.0/libwnck/window-action-menu.c	2007-03-28 18:38:33.000000000 -0400
Kristian Høgsberg 77f9263
@@ -36,6 +36,10 @@
Kristian Høgsberg 77f9263
   ABOVE,
Kristian Høgsberg 77f9263
   MOVE,
Kristian Høgsberg 77f9263
   RESIZE,
Kristian Høgsberg 77f9263
+  CHANGE_OPACITY,
Kristian Høgsberg 77f9263
+  CHANGE_SATURATION,
Kristian Høgsberg 77f9263
+  CHANGE_BRIGHTNESS,
Kristian Høgsberg 77f9263
+  RESET,
Kristian Høgsberg 77f9263
   PIN,
Kristian Høgsberg 77f9263
   LEFT,
Kristian Høgsberg 77f9263
   RIGHT,
Kristian Høgsberg 77f9263
@@ -55,6 +59,11 @@
Kristian Høgsberg 77f9263
   GtkWidget *above_item;
Kristian Høgsberg 77f9263
   GtkWidget *move_item;
Kristian Høgsberg 77f9263
   GtkWidget *resize_item;
Kristian Høgsberg 77f9263
+  GtkWidget *appearance_item;
Kristian Høgsberg 77f9263
+  GtkWidget *opacity_item;
Kristian Høgsberg 77f9263
+  GtkWidget *saturation_item;
Kristian Høgsberg 77f9263
+  GtkWidget *brightness_item;
Kristian Høgsberg 77f9263
+  GtkWidget *reset_item;
Kristian Høgsberg 77f9263
   GtkWidget *close_item;
Kristian Høgsberg 77f9263
   GtkWidget *workspace_separator;
Kristian Høgsberg 77f9263
   GtkWidget *pin_item;
Kristian Høgsberg 77f9263
@@ -151,6 +160,46 @@
Kristian Høgsberg 77f9263
     case RESIZE:
Kristian Høgsberg 77f9263
       wnck_window_keyboard_size (amd->window);
Kristian Høgsberg 77f9263
       break;
Kristian Høgsberg 77f9263
+    case CHANGE_OPACITY:
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	int opacity_value;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	opacity_value =
Kristian Høgsberg 77f9263
+	    GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item),
Kristian Høgsberg 77f9263
+						"opacity"));
Kristian Høgsberg 77f9263
+	
Kristian Høgsberg 77f9263
+	wnck_window_set_opacity (amd->window, opacity_value);
Kristian Høgsberg 77f9263
+	break;
Kristian Høgsberg 77f9263
+      }
Kristian Høgsberg 77f9263
+    case CHANGE_SATURATION:
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	int saturation_value;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	saturation_value =
Kristian Høgsberg 77f9263
+	    GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item),
Kristian Høgsberg 77f9263
+						"saturation"));
Kristian Høgsberg 77f9263
+	
Kristian Høgsberg 77f9263
+	wnck_window_set_saturation (amd->window, saturation_value);
Kristian Høgsberg 77f9263
+	break;
Kristian Høgsberg 77f9263
+      }
Kristian Høgsberg 77f9263
+    case CHANGE_BRIGHTNESS:
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	int brightness_value;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	brightness_value =
Kristian Høgsberg 77f9263
+	    GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item),
Kristian Høgsberg 77f9263
+						"brightness"));
Kristian Høgsberg 77f9263
+	
Kristian Høgsberg 77f9263
+	wnck_window_set_brightness (amd->window, brightness_value);
Kristian Høgsberg 77f9263
+	break;
Kristian Høgsberg 77f9263
+      }
Kristian Høgsberg 77f9263
+    case RESET:
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	wnck_window_set_brightness (amd->window, 100);
Kristian Høgsberg 77f9263
+	wnck_window_set_saturation (amd->window, 100);
Kristian Høgsberg 77f9263
+	wnck_window_set_opacity (amd->window, 100);
Kristian Høgsberg 77f9263
+	break;
Kristian Høgsberg 77f9263
+      } 
Kristian Høgsberg 77f9263
     case PIN:
Kristian Høgsberg 77f9263
       if (wnck_window_is_pinned (amd->window))
Kristian Høgsberg 77f9263
         wnck_window_unpin (amd->window);
Kristian Høgsberg 77f9263
@@ -250,6 +299,10 @@
Kristian Høgsberg 77f9263
   WnckWindowActions  actions;  
Kristian Høgsberg 77f9263
   WnckScreen        *screen;
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+  guint present_opacity;
Kristian Høgsberg 77f9263
+  guint present_saturation;
Kristian Høgsberg 77f9263
+  guint present_brightness;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
   amd->idle_handler = 0;
Kristian Høgsberg 77f9263
   
Kristian Høgsberg 77f9263
   actions = wnck_window_get_actions (amd->window);
Kristian Høgsberg 77f9263
@@ -297,6 +350,20 @@
Kristian Høgsberg 77f9263
   gtk_widget_set_sensitive (amd->above_item,
Kristian Høgsberg 77f9263
                             (actions & WNCK_WINDOW_ACTION_ABOVE) != 0);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+  present_opacity = wnck_window_get_opacity (amd->window);
Kristian Høgsberg 77f9263
+  present_saturation = wnck_window_get_saturation (amd->window);
Kristian Høgsberg 77f9263
+  present_brightness = wnck_window_get_brightness (amd->window);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (present_opacity == 100 && present_saturation == 100 && present_brightness == 100)
Kristian Høgsberg 77f9263
+    {
Kristian Høgsberg 77f9263
+      gtk_widget_set_sensitive (amd->reset_item, FALSE);      
Kristian Høgsberg 77f9263
+    }
Kristian Høgsberg 77f9263
+  else
Kristian Høgsberg 77f9263
+    {
Kristian Høgsberg 77f9263
+      gtk_widget_set_sensitive (amd->reset_item, TRUE); 
Kristian Høgsberg 77f9263
+    }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
   if (wnck_window_is_pinned (amd->window))
Kristian Høgsberg 77f9263
     {
Kristian Høgsberg 77f9263
       set_item_text (amd->pin_item, _("_Only on This Workspace"));
Kristian Høgsberg 77f9263
@@ -525,7 +592,7 @@
Kristian Høgsberg 77f9263
 GtkWidget*
Kristian Høgsberg 77f9263
 wnck_create_window_action_menu (WnckWindow *window)
Kristian Høgsberg 77f9263
 {
Kristian Høgsberg 77f9263
-  GtkWidget *menu, *submenu;
Kristian Høgsberg 77f9263
+  GtkWidget *menu, *submenu, *submenu2;
Kristian Høgsberg 77f9263
   ActionMenuData *amd;
Kristian Høgsberg 77f9263
   GtkWidget *separator;
Kristian Høgsberg 77f9263
   int num_workspaces, present_workspace, i;
Kristian Høgsberg 77f9263
@@ -579,6 +646,154 @@
Kristian Høgsberg 77f9263
   set_item_text (amd->resize_item, _("_Resize"));
Kristian Høgsberg 77f9263
   set_item_stock (amd->move_item, NULL);
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+  if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
Kristian Høgsberg 77f9263
+				   "_NET_WM_WINDOW_OPACITY"))
Kristian Høgsberg 77f9263
+  {
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      amd->appearance_item = gtk_menu_item_new_with_mnemonic (_("_Appearance"));
Kristian Høgsberg 77f9263
+      gtk_widget_show (amd->appearance_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      submenu = gtk_menu_new ();
Kristian Høgsberg 77f9263
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->appearance_item),
Kristian Høgsberg 77f9263
+				 submenu);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      gtk_menu_shell_append (GTK_MENU_SHELL (menu), amd->appearance_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
Kristian Høgsberg 77f9263
+				   "_NET_WM_WINDOW_OPACITY"))
Kristian Høgsberg 77f9263
+  {
Kristian Høgsberg 77f9263
+      guint present_opacity;
Kristian Høgsberg 77f9263
+      gint  j;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      amd->opacity_item = gtk_menu_item_new_with_mnemonic (_("_Opacity"));
Kristian Høgsberg 77f9263
+      gtk_widget_show (amd->opacity_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      submenu2 = gtk_menu_new ();
Kristian Høgsberg 77f9263
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->opacity_item),
Kristian Høgsberg 77f9263
+				 submenu2);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      gtk_menu_shell_append (GTK_MENU_SHELL (submenu), amd->opacity_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      present_opacity = wnck_window_get_opacity (window);
Kristian Høgsberg 77f9263
+      for (j = 0; j < 4; j++)
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	  GtkWidget *item;
Kristian Høgsberg 77f9263
+	  gchar	    *label;
Kristian Høgsberg 77f9263
+	  guint	    o;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  label = g_strdup_printf ("%d%%", (j + 1) * 25);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  item = make_menu_item (amd, CHANGE_OPACITY);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  o = (j + 1) * 25;
Kristian Høgsberg 77f9263
+	  g_object_set_data (G_OBJECT (item), "opacity", GINT_TO_POINTER (o));
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  if (o == present_opacity)
Kristian Høgsberg 77f9263
+	      gtk_widget_set_sensitive (item, FALSE);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  gtk_menu_shell_append (GTK_MENU_SHELL (submenu2), item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  set_item_text (item, label);
Kristian Høgsberg 77f9263
+	  set_item_stock (item, NULL);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  g_free (label);
Kristian Høgsberg 77f9263
+      }
Kristian Høgsberg 77f9263
+  }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
Kristian Høgsberg 77f9263
+				   "_NET_WM_WINDOW_SATURATION"))
Kristian Høgsberg 77f9263
+  {
Kristian Høgsberg 77f9263
+      guint present_saturation;
Kristian Høgsberg 77f9263
+      gint  j;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      amd->saturation_item = gtk_menu_item_new_with_mnemonic (_("_Saturation"));
Kristian Høgsberg 77f9263
+      gtk_widget_show (amd->saturation_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      submenu2 = gtk_menu_new ();
Kristian Høgsberg 77f9263
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->saturation_item),
Kristian Høgsberg 77f9263
+				 submenu2);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      gtk_menu_shell_append (GTK_MENU_SHELL (submenu), amd->saturation_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      present_saturation = wnck_window_get_saturation (window);
Kristian Høgsberg 77f9263
+      for (j = 0; j < 4; j++)
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	  GtkWidget *item;
Kristian Høgsberg 77f9263
+	  gchar	    *label;
Kristian Høgsberg 77f9263
+	  guint	    o;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  label = g_strdup_printf ("%d%%", (j + 1) * 25);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  item = make_menu_item (amd, CHANGE_SATURATION);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  o = (j + 1) * 25;
Kristian Høgsberg 77f9263
+	  g_object_set_data (G_OBJECT (item), "saturation", GINT_TO_POINTER (o));
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  if (o == present_saturation)
Kristian Høgsberg 77f9263
+	      gtk_widget_set_sensitive (item, FALSE);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  gtk_menu_shell_append (GTK_MENU_SHELL (submenu2), item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  set_item_text (item, label);
Kristian Høgsberg 77f9263
+	  set_item_stock (item, NULL);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  g_free (label);
Kristian Høgsberg 77f9263
+      }
Kristian Høgsberg 77f9263
+  }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
Kristian Høgsberg 77f9263
+				   "_NET_WM_WINDOW_BRIGHTNESS"))
Kristian Høgsberg 77f9263
+  {
Kristian Høgsberg 77f9263
+      guint present_brightness;
Kristian Høgsberg 77f9263
+      gint  j;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      amd->brightness_item = gtk_menu_item_new_with_mnemonic (_("_Brightness"));
Kristian Høgsberg 77f9263
+      gtk_widget_show (amd->brightness_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      submenu2 = gtk_menu_new ();
Kristian Høgsberg 77f9263
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->brightness_item),
Kristian Høgsberg 77f9263
+				 submenu2);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      gtk_menu_shell_append (GTK_MENU_SHELL (submenu), amd->brightness_item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+      present_brightness = wnck_window_get_brightness (window);
Kristian Høgsberg 77f9263
+      for (j = 0; j < 4; j++)
Kristian Høgsberg 77f9263
+      {
Kristian Høgsberg 77f9263
+	  GtkWidget *item;
Kristian Høgsberg 77f9263
+	  gchar	    *label;
Kristian Høgsberg 77f9263
+	  guint	    o;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  label = g_strdup_printf ("%d%%", (j + 1) * 25);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  item = make_menu_item (amd, CHANGE_BRIGHTNESS);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  o = (j + 1) * 25;
Kristian Høgsberg 77f9263
+	  g_object_set_data (G_OBJECT (item), "brightness", GINT_TO_POINTER (o));
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  if (o == present_brightness)
Kristian Høgsberg 77f9263
+	      gtk_widget_set_sensitive (item, FALSE);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  gtk_menu_shell_append (GTK_MENU_SHELL (submenu2), item);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  set_item_text (item, label);
Kristian Høgsberg 77f9263
+	  set_item_stock (item, NULL);
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+	  g_free (label);
Kristian Høgsberg 77f9263
+      }
Kristian Høgsberg 77f9263
+  }
Kristian Høgsberg 77f9263
+  
Kristian Høgsberg 77f9263
+  if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
Kristian Høgsberg 77f9263
+				   "_NET_WM_WINDOW_OPACITY"))
Kristian Høgsberg 77f9263
+  {
Kristian Høgsberg 77f9263
+      amd->reset_item = make_menu_item (amd, RESET);
Kristian Høgsberg 77f9263
+      gtk_menu_shell_append (GTK_MENU_SHELL (submenu), amd->reset_item);  
Kristian Høgsberg 77f9263
+      
Kristian Høgsberg 77f9263
+      set_item_text (amd->reset_item, _("_Reset settings"));
Kristian Høgsberg 77f9263
+  }
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
   separator = gtk_separator_menu_item_new ();
Kristian Høgsberg 77f9263
   gtk_widget_show (separator);
Kristian Høgsberg 77f9263
   gtk_menu_shell_append (GTK_MENU_SHELL (menu),
Kristian Høgsberg 77f9263
--- libwnck-2.18.0/libwnck/xutils.c.appearance	2007-03-28 18:37:42.000000000 -0400
Kristian Høgsberg 77f9263
+++ libwnck-2.18.0/libwnck/xutils.c	2007-03-28 18:38:33.000000000 -0400
Kristian Høgsberg 77f9263
@@ -1121,6 +1121,87 @@
Kristian Høgsberg 77f9263
 	      &xev);
Kristian Høgsberg 77f9263
 }
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+void
Kristian Høgsberg 77f9263
+_wnck_change_opacity (Screen  *screen,
Kristian Høgsberg 77f9263
+		      Window  xwindow,
Kristian Høgsberg 77f9263
+		      guint32 opacity)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  XEvent xev;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  xev.xclient.type = ClientMessage;
Kristian Høgsberg 77f9263
+  xev.xclient.serial = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.send_event = True;
Kristian Høgsberg 77f9263
+  xev.xclient.display = gdk_display;
Kristian Høgsberg 77f9263
+  xev.xclient.window = xwindow;
Kristian Høgsberg 77f9263
+  xev.xclient.message_type = _wnck_atom_get ("_NET_WM_WINDOW_OPACITY");
Kristian Høgsberg 77f9263
+  xev.xclient.format = 32;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[0] = opacity;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[1] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[2] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[3] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[4] = 0;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  XSendEvent (gdk_display,
Kristian Høgsberg 77f9263
+	      RootWindowOfScreen (screen),
Kristian Høgsberg 77f9263
+	      False,
Kristian Høgsberg 77f9263
+	      SubstructureRedirectMask | SubstructureNotifyMask,
Kristian Høgsberg 77f9263
+	      &xev);
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+void
Kristian Høgsberg 77f9263
+_wnck_change_saturation (Screen  *screen,
Kristian Høgsberg 77f9263
+		      Window  xwindow,
Kristian Høgsberg 77f9263
+		      guint32 saturation)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  XEvent xev;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  xev.xclient.type = ClientMessage;
Kristian Høgsberg 77f9263
+  xev.xclient.serial = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.send_event = True;
Kristian Høgsberg 77f9263
+  xev.xclient.display = gdk_display;
Kristian Høgsberg 77f9263
+  xev.xclient.window = xwindow;
Kristian Høgsberg 77f9263
+  xev.xclient.message_type = _wnck_atom_get ("_NET_WM_WINDOW_SATURATION");
Kristian Høgsberg 77f9263
+  xev.xclient.format = 32;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[0] = saturation;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[1] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[2] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[3] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[4] = 0;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  XSendEvent (gdk_display,
Kristian Høgsberg 77f9263
+	      RootWindowOfScreen (screen),
Kristian Høgsberg 77f9263
+	      False,
Kristian Høgsberg 77f9263
+	      SubstructureRedirectMask | SubstructureNotifyMask,
Kristian Høgsberg 77f9263
+	      &xev);
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+void
Kristian Høgsberg 77f9263
+_wnck_change_brightness (Screen  *screen,
Kristian Høgsberg 77f9263
+		      Window  xwindow,
Kristian Høgsberg 77f9263
+		      guint32 brightness)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  XEvent xev;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  xev.xclient.type = ClientMessage;
Kristian Høgsberg 77f9263
+  xev.xclient.serial = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.send_event = True;
Kristian Høgsberg 77f9263
+  xev.xclient.display = gdk_display;
Kristian Høgsberg 77f9263
+  xev.xclient.window = xwindow;
Kristian Høgsberg 77f9263
+  xev.xclient.message_type = _wnck_atom_get ("_NET_WM_WINDOW_BRIGHTNESS");
Kristian Høgsberg 77f9263
+  xev.xclient.format = 32;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[0] = brightness;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[1] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[2] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[3] = 0;
Kristian Høgsberg 77f9263
+  xev.xclient.data.l[4] = 0;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  XSendEvent (gdk_display,
Kristian Høgsberg 77f9263
+	      RootWindowOfScreen (screen),
Kristian Høgsberg 77f9263
+	      False,
Kristian Høgsberg 77f9263
+	      SubstructureRedirectMask | SubstructureNotifyMask,
Kristian Høgsberg 77f9263
+	      &xev);
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
 char*
Kristian Høgsberg 77f9263
 _wnck_get_session_id (Window xwindow)
Kristian Høgsberg 77f9263
 {
Kristian Høgsberg 77f9263
@@ -1241,6 +1322,45 @@
Kristian Høgsberg 77f9263
     }
Kristian Høgsberg 77f9263
 }
Kristian Høgsberg 77f9263
 
Kristian Høgsberg 77f9263
+guint32
Kristian Høgsberg 77f9263
+_wnck_get_opacity (Window xwindow)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  int val;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (_wnck_get_cardinal (xwindow,
Kristian Høgsberg 77f9263
+			  _wnck_atom_get ("_NET_WM_WINDOW_OPACITY"),
Kristian Høgsberg 77f9263
+			  &val))
Kristian Høgsberg 77f9263
+      return val;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  return G_MAXUINT32;
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint32
Kristian Høgsberg 77f9263
+_wnck_get_saturation (Window xwindow)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  int val;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (_wnck_get_cardinal (xwindow,
Kristian Høgsberg 77f9263
+			  _wnck_atom_get ("_NET_WM_WINDOW_SATURATION"),
Kristian Høgsberg 77f9263
+			  &val))
Kristian Høgsberg 77f9263
+      return val;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  return G_MAXUINT32;
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+guint32
Kristian Høgsberg 77f9263
+_wnck_get_brightness (Window xwindow)
Kristian Høgsberg 77f9263
+{
Kristian Høgsberg 77f9263
+  int val;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  if (_wnck_get_cardinal (xwindow,
Kristian Høgsberg 77f9263
+			  _wnck_atom_get ("_NET_WM_WINDOW_BRIGHTNESS"),
Kristian Høgsberg 77f9263
+			  &val))
Kristian Høgsberg 77f9263
+      return val;
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
+  return G_MAXUINT32;
Kristian Høgsberg 77f9263
+}
Kristian Høgsberg 77f9263
+
Kristian Høgsberg 77f9263
 void
Kristian Høgsberg 77f9263
 _wnck_select_input (Window xwindow,
Kristian Høgsberg 77f9263
                     int    mask)