Blob Blame History Raw
From 2248d3f0e9fc3d2af26e956e8cdde537a8a3946e Mon Sep 17 00:00:00 2001
From: Fabio Fantoni <fantonifabio@tiscali.it>
Date: Thu, 31 Jul 2014 11:13:34 +0200
Subject: [PATCH] power: upower 0.99 fix

Margarita Manterola patch from debian.
---
 plugins/power/csd-power-manager.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
index ecff044..ae8d2ba 100644
--- a/plugins/power/csd-power-manager.c
+++ b/plugins/power/csd-power-manager.c
@@ -236,6 +236,10 @@ static void      do_lid_closed_action (CsdPowerManager *manager);
 static void      lock_screensaver (CsdPowerManager *manager);
 static void      kill_lid_close_safety_timer (CsdPowerManager *manager);
 
+#if UP_CHECK_VERSION(0,99,0)
+static void device_properties_changed_cb (UpDevice *device, GParamSpec *pspec, CsdPowerManager *manager);
+#endif
+
 G_DEFINE_TYPE (CsdPowerManager, csd_power_manager, G_TYPE_OBJECT)
 
 static gpointer manager_object = NULL;
@@ -990,6 +994,16 @@ engine_device_add (CsdPowerManager *manager, UpDevice *device)
                                    "engine-state-old",
                                    GUINT_TO_POINTER(state));
         }
+
+#if UP_CHECK_VERSION(0,99,0)
+        g_ptr_array_add (manager->priv->devices_array, g_object_ref(device));
+
+        g_signal_connect (device, "notify::state",
+                          G_CALLBACK (device_properties_changed_cb), manager);
+        g_signal_connect (device, "notify::warning-level",
+                          G_CALLBACK (device_properties_changed_cb), manager);
+#endif
+
 }
 
 static gboolean
@@ -1714,7 +1728,11 @@ out:
 }
 
 static void
+#if UP_CHECK_VERSION(0,99,0)
+device_properties_changed_cb (UpDevice *device, GParamSpec *pspec, CsdPowerManager *manager)
+#else
 engine_device_changed_cb (UpClient *client, UpDevice *device, CsdPowerManager *manager)
+#endif
 {
         UpDeviceKind kind;
         UpDeviceState state;
@@ -3986,12 +4004,12 @@ csd_power_manager_start (CsdPowerManager *manager,
                           G_CALLBACK (engine_device_added_cb), manager);
         g_signal_connect (manager->priv->up_client, "device-removed",
                           G_CALLBACK (engine_device_removed_cb), manager);
-        g_signal_connect (manager->priv->up_client, "device-changed",
-                          G_CALLBACK (engine_device_changed_cb), manager);
 #if UP_CHECK_VERSION(0,99,0)
         g_signal_connect_after (manager->priv->up_client, "notify::lid-is-closed",
                                 G_CALLBACK (lid_state_changed_cb), manager);
 #else
+        g_signal_connect (manager->priv->up_client, "device-changed",
+                          G_CALLBACK (engine_device_changed_cb), manager);
         g_signal_connect_after (manager->priv->up_client, "changed",
                                 G_CALLBACK (up_client_changed_cb), manager);
 #endif
-- 
1.9.3