From 34b3d9144fbb1bf9b04d9679548e26bcb1ad5497 Mon Sep 17 00:00:00 2001
From: Eric Koegel <eric.koegel@gmail.com>
Date: Thu, 26 Jun 2014 19:37:14 +0300
Subject: [PATCH] Bind xfconf properties after object is created

---
 src/xfpm-power.c | 38 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/src/xfpm-power.c b/src/xfpm-power.c
index 7123c7e1..e066a271 100644
--- a/src/xfpm-power.c
+++ b/src/xfpm-power.c
@@ -1178,18 +1178,6 @@ xfpm_power_init (XfpmPower *power)
     xfpm_power_check_polkit_auth (power);
 #endif
 
-    xfconf_g_property_bind(xfpm_xfconf_get_channel(power->priv->conf),
-                           PROPERTIES_PREFIX PRESENTATION_MODE, G_TYPE_BOOLEAN,
-                           G_OBJECT(power), PRESENTATION_MODE);
-
-    xfconf_g_property_bind (xfpm_xfconf_get_channel(power->priv->conf),
-                            PROPERTIES_PREFIX ON_BATTERY_BLANK, G_TYPE_INT,
-                            G_OBJECT (power), ON_BATTERY_BLANK);
-
-    xfconf_g_property_bind (xfpm_xfconf_get_channel(power->priv->conf),
-                            PROPERTIES_PREFIX ON_AC_BLANK, G_TYPE_INT,
-                            G_OBJECT (power), ON_AC_BLANK);
-
 out:
     xfpm_power_dbus_init (power);
 
@@ -1304,6 +1292,26 @@ xfpm_power_finalize (GObject *object)
     G_OBJECT_CLASS (xfpm_power_parent_class)->finalize (object);
 }
 
+static XfpmPower*
+xfpm_power_new (void)
+{
+    XfpmPower *power = XFPM_POWER(g_object_new (XFPM_TYPE_POWER, NULL));
+
+    xfconf_g_property_bind (xfpm_xfconf_get_channel(power->priv->conf),
+                            PROPERTIES_PREFIX PRESENTATION_MODE, G_TYPE_BOOLEAN,
+                            G_OBJECT(power), PRESENTATION_MODE);
+
+    xfconf_g_property_bind (xfpm_xfconf_get_channel(power->priv->conf),
+                            PROPERTIES_PREFIX ON_BATTERY_BLANK, G_TYPE_INT,
+                            G_OBJECT (power), ON_BATTERY_BLANK);
+
+    xfconf_g_property_bind (xfpm_xfconf_get_channel(power->priv->conf),
+                            PROPERTIES_PREFIX ON_AC_BLANK, G_TYPE_INT,
+                            G_OBJECT (power), ON_AC_BLANK);
+
+    return power;
+}
+
 XfpmPower *
 xfpm_power_get (void)
 {
@@ -1311,12 +1319,12 @@ xfpm_power_get (void)
 
     if ( G_LIKELY (xfpm_power_object != NULL ) )
     {
-	g_object_ref (xfpm_power_object);
+        g_object_ref (xfpm_power_object);
     }
     else
     {
-	xfpm_power_object = g_object_new (XFPM_TYPE_POWER, NULL);
-	g_object_add_weak_pointer (xfpm_power_object, &xfpm_power_object);
+        xfpm_power_object = xfpm_power_new ();
+        g_object_add_weak_pointer (xfpm_power_object, &xfpm_power_object);
     }
 
     return XFPM_POWER (xfpm_power_object);
-- 
GitLab