File gnome-control-center-fix-screen-brightness.patch of Package gnome-control-center

From 570478bcae6c872a4903118fdae25cb72cb5a027 Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Fri, 08 Jun 2012 21:01:10 +0000
Subject: screen: Fix for gnome-settings-daemon changes

g-s-d changed its DBus interface, and that made all
external changes to brightness invisible to the panel. Update
accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=662117
---
Index: gnome-control-center-3.4.2/panels/screen/cc-screen-panel.c
===================================================================
--- gnome-control-center-3.4.2.orig/panels/screen/cc-screen-panel.c
+++ gnome-control-center-3.4.2/panels/screen/cc-screen-panel.c
@@ -169,33 +169,6 @@ cc_screen_panel_class_finalize (CcScreen
 }
 
 static void
-on_signal (GDBusProxy *proxy,
-           gchar      *sender_name,
-           gchar      *signal_name,
-           GVariant   *parameters,
-           gpointer    user_data)
-{
-  CcScreenPanel *self = CC_SCREEN_PANEL (user_data);
-
-  if (g_strcmp0 (signal_name, "BrightnessChanged") == 0)
-    {
-      guint brightness;
-      GtkRange *range;
-
-      /* changed, but ignoring */
-      if (self->priv->setting_brightness)
-        return;
-
-      /* update the bar */
-      g_variant_get (parameters,
-                     "(u)",
-                     &brightness);
-      range = GTK_RANGE (WID ("screen_brightness_hscale"));
-      gtk_range_set_value (range, brightness);
-    }
-}
-
-static void
 set_brightness_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
 {
   GError *error = NULL;
@@ -276,6 +249,34 @@ get_brightness_cb (GObject *source_objec
 }
 
 static void
+on_signal (GDBusProxy *proxy,
+           gchar      *sender_name,
+           gchar      *signal_name,
+           GVariant   *parameters,
+           gpointer    user_data)
+{
+  CcScreenPanel *self = CC_SCREEN_PANEL (user_data);
+
+  if (g_strcmp0 (signal_name, "Changed") == 0)
+    {
+      /* changed, but ignoring */
+      if (self->priv->setting_brightness)
+        return;
+
+      /* retrieve the value again from g-s-d */
+      g_dbus_proxy_call (self->priv->proxy,
+                         "GetPercentage",
+                         NULL,
+                         G_DBUS_CALL_FLAGS_NONE,
+                         200, /* we don't want to randomly move the bar */
+                         self->priv->cancellable,
+                         get_brightness_cb,
+                         user_data);
+    }
+}
+
+
+static void
 got_power_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
 {
   GError *error = NULL;
openSUSE Build Service is sponsored by