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